惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 三生石上(FineUI控件)
Blog — PlanetScale
Blog — PlanetScale
B
Blog
GbyAI
GbyAI
爱范儿
爱范儿
月光博客
月光博客
N
Netflix TechBlog - Medium
T
Tailwind CSS Blog
G
Google Developers Blog
大猫的无限游戏
大猫的无限游戏
Vercel News
Vercel News
H
Hackread – Cybersecurity News, Data Breaches, AI and More
WordPress大学
WordPress大学
The GitHub Blog
The GitHub Blog
Recent Announcements
Recent Announcements
腾讯CDC
MyScale Blog
MyScale Blog
V
Visual Studio Blog
The Cloudflare Blog
Microsoft Security Blog
Microsoft Security Blog
A
About on SuperTechFans
Google DeepMind News
Google DeepMind News
Last Week in AI
Last Week in AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

博客园 - microsoft_xin

用户属性数据库设计:如何平衡固定信息与灵活扩展? mysql数据库千万级数据量是分库分表好还是数据归档好 MySQL 优化实战:为何 DELETE + IN 子查询性能不佳,而 JOIN 却能高效利用索引? git的还原提交和撤销提交可以帮你快速回滚提交和推送 java语法使用小技巧-保留两位小数-用group对list数据分组取和 java时间常用功能工具类 Navicat或DBeaver连接MySql提示错误 Unable to load authentication plugin ‘caching_sha2_password‘ 快速测试连接SQLServer数据库的方法 nlog使用小记(日志文件分割备份循环) IDEA常用快捷键 java中两个list集合取并集、交集和差集&对list数据进行对象属性筛选 Cron表达式及格式适用于各种调度服务quartz xxljob hangfire .NET List常见操作之交集并集差集(转) mysql-查看最近执行sql脚本 SharePoint安装 OpenID Connect、SAML、WS-Federation和/或OAuth2.0 SQLServer常用SQL脚本 使用VSTO创建修改和删除outlook会议加载项(二) 使用VSTO创建修改和删除outlook会议加载项(一)
C#客户端实现域环境内Windows认证免密码自动身份认证登录
microsoft_xin · 2022-12-14 · via 博客园 - microsoft_xin

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身份验证证,禁用匿名身份验证