首页 > 系统相关 >C#客户端实现域环境内Windows认证免密码自动身份认证登录

C#客户端实现域环境内Windows认证免密码自动身份认证登录

时间:2022-12-14 09:55:18浏览次数:56  
标签:C# request strResponse Windows result new 认证 客户端

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

 

标签:C#,request,strResponse,Windows,result,new,认证,客户端
From: https://www.cnblogs.com/microsoft-xin/p/16981294.html

相关文章

  • 上网认证(锐捷睿易篇)
    大家好,我是小杜,最近一段时间,到现场“出差”,回来后再“深造”各钟知识,就像陀螺一样转的飞起,虽然累,但是感觉很充实,看着一点一点的进步的那种收获感,被师傅表扬的那种满足......
  • 搭建Eureka Client商品微服务
     我们搭建好了EurekaServer,本节我们来搭建一个EurekaClient商品(goods)微服务,实现简单的查询商品的功能。我们使用IDEA创建一个名为goods的SpringBoot项目,如图9-4所示。......
  • C# XML描述与实例增删改
    概述用于小型项目数据存储,信息传递。系统配置文件等特点必须有根节点(对比HTML)标签只能自定义 (对比HTML)头声明可有可无建议书写<?xmlversion="1.0"encoding=......
  • C#深拷贝有哪些方法实现
    概述为什么要用到深拷贝呢?比如我们建了某个类Person,并且实例化出一个对象,然后,突然需要把这个对象复制一遍,并且复制出来的对象要跟之前的一模一样,来看下我们一般......
  • CommunityToolkit.Mvvm
    publicclassViewModel:ObservableObject{publicViewModel(){ShowCommand=newRelayCommand<string>(Show);}......
  • Docker 安装,常用命令
    安装Docker官方所有操作系统安装教程:InstallDockerEngineonCentOS|DockerDocumentation,其中CentOS安装docker引擎的代码:安装yum-utils,配置库的地址sudoyuminst......
  • Rocky9 在 VMware Workstation 17 Pro 上的安装
    本篇随笔仅记录Rocky9的安装。  镜像下载链接:https://rockylinux.org/download 我选择的版本如图: 我给的配置(本人笔记本CPU是8核16线程,内存32G,给的这个配置......
  • SQL_8_TCL语句
    TCL指的是事务控制语句。  1、事务概论:指一组要么同时执行成功,要么同时执行失败的SQL语句。是数据库操作的一个执行单元。特性:原子性:它是数据库中最小执行......
  • 想要将CADz轴归零?快来试试这几个办法!
    CAD平面图设计过程中,如果有Z坐标可能会带来一系列问题,例如:CAD查询距离不准确,无法倒圆角,无法延伸、无法裁剪……怎么才能将CADz轴归零?本文以浩辰CAD软件为例给大家分享几个......
  • CAD怎么画三维图?通过3D魔方设计实例教会你CAD三维建模!
    CAD怎么画三维图?作为一款研发创新型工业软件,浩辰CAD不仅可以快速、精确地绘制各种二维工程图纸,还可以辅助设计师高效完成3D建模。尤其是在2022版本,浩辰CAD对于3D设计模块做......