Skip to content

Commit 726bcea

Browse files
committed
winform login ui optimized
1 parent 94690fa commit 726bcea

19 files changed

Lines changed: 423 additions & 41 deletions

File tree

src/NSmartProxy.ClientRouter/Dispatchers/NSPDispatcher.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,17 @@ public async Task<HttpResult<LoginFormClientResult>> LoginFromClient(string user
2121
{
2222
string url = $"http://{BaseUrl}/LoginFromClient";
2323
HttpClient client = new HttpClient();
24-
var httpmsg = await client.GetAsync($"{url}?username={username}&userpwd={userpwd}");
25-
var httpstr = await httpmsg.Content.ReadAsStringAsync();
24+
var httpmsg = await client.GetAsync($"{url}?username={username}&userpwd={userpwd}").ConfigureAwait(false);
25+
var httpstr = await httpmsg.Content.ReadAsStringAsync().ConfigureAwait(false);
2626
return JsonConvert.DeserializeObject<HttpResult<LoginFormClientResult>>(httpstr);
2727
}
2828

2929
public async Task<HttpResult<LoginFormClientResult>> Login(string userid, string userpwd)
3030
{
3131
string url = $"http://{BaseUrl}/LoginFromClientById";
3232
HttpClient client = new HttpClient();
33-
var httpmsg = await client.GetAsync($"{url}?username={userid}&userpwd={userpwd}");
34-
var httpstr = await httpmsg.Content.ReadAsStringAsync();
33+
var httpmsg = await client.GetAsync($"{url}?username={userid}&userpwd={userpwd}").ConfigureAwait(false);
34+
var httpstr = await httpmsg.Content.ReadAsStringAsync().ConfigureAwait(false);
3535
return JsonConvert.DeserializeObject<HttpResult<LoginFormClientResult>>(httpstr);
3636
}
3737

src/NSmartProxy.ClientRouter/Router.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ public async Task Start(bool AlwaysReconnect = false)
9393
{
9494
if (AlwaysReconnect) IsStarted = true;
9595
var oneLiveToken = ONE_LIVE_TOKEN_SRC.Token;
96-
//登陆功能
96+
//登录功能
9797
string arrangedToken = Global.NO_TOKEN_STRING;
9898

9999
while (!oneLiveToken.IsCancellationRequested)
@@ -107,28 +107,28 @@ public async Task Start(bool AlwaysReconnect = false)
107107
var appIdIpPortConfig = ClientConfig.Clients;
108108
int clientId = 0;
109109

110-
//0.5 处理登陆/重登录/匿名登陆逻辑
110+
//0.5 处理登录/重登录/匿名登录逻辑
111111
try
112112
{
113-
//登陆
113+
//登录
114114
if (CurrentLoginInfo != null)
115115
{
116116
var loginResult = await Login();
117117
arrangedToken = loginResult.Item1;
118118
clientId = loginResult.Item2;
119119
}
120120
else if (File.Exists(NSMART_CLIENT_CACHE_PATH))
121-
{ //登陆缓存
121+
{ //登录缓存
122122

123123
arrangedToken = File.ReadAllText(NSMART_CLIENT_CACHE_PATH);
124-
//TODO 这个token的合法性无法保证,如果服务端删除了用户,而这里缓存还存在,会导致无法登陆
124+
//TODO 这个token的合法性无法保证,如果服务端删除了用户,而这里缓存还存在,会导致无法登录
125125
//TODO ***** 这是个trick:防止匿名用户被服务端踢了之后无限申请新账号
126126
CurrentLoginInfo = null;
127127
}
128128
else
129129
{
130-
//匿名登陆,未提供登陆信息时,使用空用户名密码自动注册并尝试匿名登陆
131-
Router.Logger.Debug("未提供登陆信息,尝试匿名登陆");
130+
//匿名登录,未提供登录信息时,使用空用户名密码自动注册并尝试匿名登录
131+
Router.Logger.Debug("未提供登录信息,尝试匿名登录");
132132
CurrentLoginInfo = new LoginInfo() { UserName = "", UserPwd = "" };
133133
var loginResult = await Login();
134134
arrangedToken = loginResult.Item1;
@@ -226,7 +226,7 @@ private async Task<ValueTuple<string, int>> Login()
226226
var result = await disp.LoginFromClient(CurrentLoginInfo.UserName ?? "", CurrentLoginInfo.UserPwd ?? "");
227227
if (result.State == 1)
228228
{
229-
Router.Logger.Debug("登陆成功");
229+
Router.Logger.Debug("登录成功");
230230
var data = result.Data;
231231
arrangedToken = data.Token;
232232
Router.Logger.Debug($"服务端版本号:{data.Version},当前适配版本号{Global.NSmartProxyServerName}");
@@ -236,7 +236,7 @@ private async Task<ValueTuple<string, int>> Login()
236236
else
237237
{
238238
StatusChanged(ClientStatus.LoginError, null);
239-
throw new Exception("登陆失败,服务端返回错误如下:" + result.Msg);
239+
throw new Exception("登录失败,服务端返回错误如下:" + result.Msg);
240240
}
241241

242242
return (arrangedToken, clientId);

src/NSmartProxy.Data/Config/NSPClientConfig.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public class NSPClientConfig
1010
public int ProviderPort; //代理转发服务端口
1111
public int ProviderConfigPort; //配置服务端口
1212
public string ProviderAddress; //代理服务器地址
13-
public int ProviderWebPort = 12309; //web管理端的端口,默认12309
13+
public int ProviderWebPort = 12309; //web管理端的端口,默认12309 //TODO 暂时写死,以后再改
1414
public List<ClientApp> Clients = new List<ClientApp>();//客户端app
1515
}
1616
}

src/NSmartProxy.Infrastructure/Shared/SecurityTcpClient.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ public async Task<AuthResult> AuthorizeAsync()
169169
else
170170
return new AuthResult()
171171
{
172-
ErrorMessage = "校验失败,服务端不支持匿名登陆",
172+
ErrorMessage = "校验失败,服务端不支持匿名登录",
173173
ResultState = AuthState.Fail
174174
};
175175
}

src/NSmartProxy.ServerHost/ServerHost.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,14 @@ static void Main(string[] args)
4848
{
4949
if (!mutex.WaitOne(3, false))
5050
{
51-
string msg = "Another instance of the program is running.";
51+
string msg = "Another instance of the program is running.It may cause fatal error.";
5252
//Logger.Error(msg, new Exception(msg));
53+
Console.ForegroundColor = ConsoleColor.DarkRed;
5354
Console.Write(msg);
54-
return;
55+
//return;
56+
Console.ForegroundColor = default(ConsoleColor);
5557
}
56-
58+
Console.WriteLine("Initializing..");
5759
//log
5860
var loggerRepository = LogManager.CreateRepository("NSmartServerRepository");
5961
XmlConfigurator.ConfigureAndWatch(loggerRepository, new FileInfo("log4net.config"));

src/NSmartProxy/Authorize/NSPServerContext.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public class NSPServerContext
1414
public NSPClientCollection Clients;
1515
public Dictionary<int, NSPApp> PortAppMap;//端口和app的映射关系
1616
public NSPServerConfig ServerConfig;
17-
public HashSet<string> TokenCaches; //服务端会话池,登陆后的会话都在这里,每天需要做定时清理
17+
public HashSet<string> TokenCaches; //服务端会话池,登录后的会话都在这里,每天需要做定时清理
1818

1919
private bool supportAnonymousLogin = true;
2020

@@ -27,7 +27,7 @@ public NSPServerContext()
2727
}
2828

2929
/// <summary>
30-
/// 支持客户端匿名登陆
30+
/// 支持客户端匿名登录
3131
/// </summary>
3232
public bool SupportAnonymousLogin { get => supportAnonymousLogin; set => supportAnonymousLogin = value; }
3333

src/NSmartProxy/Extension/HttpServer.cs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -185,17 +185,17 @@ private async Task ProcessHttpRequestAsync(HttpListenerContext context)
185185
}
186186

187187
//TODO 先不校验,方便调试
188-
//if (method.GetCustomAttribute<SecureAttribute>() != null)
189-
//{
190-
// if (request.Cookies["NSPTK"] == null)
191-
// throw new Exception("用户未登陆。");
192-
// //TODO cookie,根据不同的用户角色分配权限。
193-
// var UserClaims = StringUtil.ConvertStringToTokenClaims(request.Cookies["NSPTK"].Value);
194-
// if (string.IsNullOrEmpty(UserClaims.UserKey))
195-
// {
196-
// throw new Exception("登陆信息异常。");
197-
// }
198-
//}
188+
if (method.GetCustomAttribute<SecureAttribute>() != null)
189+
{
190+
if (request.Cookies["NSPTK"] == null)
191+
throw new Exception("用户未登录。");
192+
//TODO cookie,根据不同的用户角色分配权限。
193+
var UserClaims = StringUtil.ConvertStringToTokenClaims(request.Cookies["NSPTK"].Value);
194+
if (string.IsNullOrEmpty(UserClaims.UserKey))
195+
{
196+
throw new Exception("登录信息异常。");
197+
}
198+
}
199199

200200
if (method.GetCustomAttribute<APIAttribute>() != null)
201201
{

src/NSmartProxy/Extension/HttpServerStaticFiles/config.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,6 @@ <h1 class="h3">配置</h1>
1818
</div>-->
1919
<div class="custom-control custom-switch" onclick="toggleConfig(this)">
2020
<input type="checkbox" class="custom-control-input" id="configAllowAnonymousUser" change ="toggleConfig(this)">
21-
<label class="custom-control-label" for="configAllowAnonymousUser">匿名登陆</label>
21+
<label class="custom-control-label" for="configAllowAnonymousUser">匿名登录</label>
2222

2323
</div>

src/NSmartProxy/Extension/HttpServerStaticFiles/main.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@
136136
<script src="Chart.min.js"></script>
137137
<!--<script src="dashboard.js"></script>-->
138138
<!--<script src="bootstrap-table-expandable.js"></script>-->
139-
<script src="main.js?v=101"></script>
139+
<script src="main.js?v=102"></script>
140140
<script></script>
141141

142142
</body>

src/NSmartProxy/Extension/HttpServerStaticFiles/main.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//TODO 想个办法让他们同步
2-
var basepath = "http://localhost:12309/";//api根地址,这里需要和配置文件一致
2+
var basepath = "/";//api根地址,这里需要和配置文件一致
33

44
//hashchange事件,路由是如此实现的
55
(function () {

0 commit comments

Comments
 (0)