C#客户端实现域环境内Windows认证免密码自动身份认证登录
C#客户端实现域环境内Windows认证免密码自动身份认证登录
客户端代码:
/// <summary> /// 认证客户端 /// </summary> public class AuthClient { /// <summary> /// 认证当前用户 /// </summary> /// <param name="authServerUrl">服务端url</param> /// <returns>认证结果信息</returns> public AuthResult AuthUser(string authServerUrl) { string strResponse = string.Empty; AuthResult result = new AuthResult(); try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(authServerUrl); //request.UseDefaultCredentials = true; //request.PreAuthenticate = true; request.Credentials = CredentialCache.DefaultCredentials; //request.Credentials = CredentialCache.DefaultNetworkCredentials; using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { using (StreamReader sr = new StreamReader(response.GetResponseStream())) { strResponse = sr.ReadToEnd(); } } //HttpClientHandler handler = new HttpClientHandler() //{ // Credentials = CredentialCache.DefaultCredentials //}; //HttpClient client = new HttpClient(handler); //strResponse = client.GetStringAsync(url); } catch(Exception e) { result.ErrCode = 1; result.ErrMessage = $"访问接口失败,{e.Message + e.StackTrace}"; return result; } JavaScriptSerializer serializer = new JavaScriptSerializer(); if(!string.IsNullOrWhiteSpace(strResponse)) { try { result = serializer.Deserialize<AuthResult>(strResponse); return result; } catch(Exception e1) { result.ErrCode = 2; result.ErrMessage = $"数据转换失败,result:{strResponse},{e1.Message + e1.StackTrace}"; return result; } } result.ErrCode = 2; result.ErrMessage = $"接口返回了空数据,result:{strResponse}"; return result; } }
服务端:在IIS上部署相关web站点,设置windows身份验证证,禁用匿名身份验证
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· Open-Sora 2.0 重磅开源!