Tag: windows authentication

如何确定使用哪种身份validation方法?

我想知道:我如何确定使用哪种身份validation方法? 例如,如果我的身份validation基于FORMS身份validation而不是WINDOWS身份validation,我想执行代码。

如何使用SmtpClient和DefaultNetworkCredentials将邮件发送到仅允许经过身份validation的发件人的通讯组列表?

我正在尝试通过我们的内部Exchange 2007服务器(使用SMTP)将C#控制台应用程序中的自动电子邮件从机器发送到同一域中的所有客户端,但我遇到了只允许经过身份validation的发件人的分发列表。 基本上我发送的邮件被Exchange拒绝: #550 5.7.1 RESOLVER.RST.AuthRequired; authentication required ##rfc822;AuthTESTGroup@example.com 我正在使用System.Net.Mail.SmtpClient并将Credentials属性设置为System.Net.CredentialCache.DefaultNetworkCredentials ,但是在该行的某个位置,运行此程序的帐户的凭据(我是一个有效的域用户,具有有效的邮箱) )没有正确传递给Exchange。 我正在使用System.Net.CredentialCache.DefaultNetworkCredentials因为我不想硬编码用户名或密码(在代码本身或任何类型的配置文件中); 我希望该进程使用Windows身份validation对我们的SMTP服务器进行身份validation。 这是我一直用来重现问题的测试程序(域名已被分类化): using System; using System.Net.Mail; namespace ConsoleApplication1 { class Program { static void Main() { var smtpClient = new SmtpClient { Host = “MAIL”, Port = 25, DeliveryMethod = SmtpDeliveryMethod.Network, Credentials = System.Net.CredentialCache.DefaultNetworkCredentials }; var mailMessage = new MailMessage { Body […]

使用c#在asp.net中使用Windows身份validation

我试图了解Windows身份validation的工作原理以及如何实现它。 我已阅读了不少文章,并在youtube上观看了一些相当长的video,但我仍然不知道需要添加到我的web.config文件/ index.aspx页面以使其正常工作。 这是index.aspx页面: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.SqlClient; using System.Configuration; using System.Data; namespace asset_management_system { public partial class index1 : System.Web.UI.Page { DataAccessLayer dal = new DataAccessLayer(); protected void Page_Load(object sender, EventArgs e) { } protected void loginBut_Click(object sender, EventArgs e) { string username = […]

如何在IIS 8上运行应用程序时委派Windows身份validation会话?

我在ASP.Net MVC 5 Framework的顶部用c#编写了一个内部网应用程序。 我的应用程序配置为通过“Windows身份validation”方法对用户进行身份validation。 此应用程序在IIS 8上运行。 我的应用使用第三方SDK与我在同一域上运行的另一个程序进行交互。 此第三方应用程序允许用户也通过提供的SDK使用Windows身份validation登录。 问题 但是SDK与之通信的服务器始终返回“无效的用户名/密码无效”。 经过深入的故障排除后,我发现IIS没有返回正确的用户名。 它不是返回“Authenticated User”,而是返回正在运行pool app的用户。 因此,要解决此问题,我将应用设置更改为以下内容 我禁用了“匿名身份validation” 我启用了“Windows身份validation” 我启用了“ASP.NET模拟”,而“ASP.NET模拟”设置被设置为“经过身份validation的用户”。 注意:由于某种原因,这需要“经典”托管管道而不是“集成”。 我将AppPool管理的管道设置更改为“Classic”v4 将运行AppPool的用户更改为“网络服务”而不是“ApplicationPoolId” 然后将身份validation提供程序列表保留为“Negotiate”和“NTLM” 最后,我保持启用“Kernal模式身份validation”。 所以上面的设置返回了正确的用户名,但是它没有将密码委托给SDK。 我想因为通信滚刀,IIS正在保护登录用户,并且它不允许我将密码委托给另一个服务/ SDK。 那么我尝试将我的设置更改为以下内容 我将AppPool管理的管道设置更改为“Integrated”v4.0 将运行AppPool的用户更改为“网络服务” 我禁用了“匿名身份validation” 我启用了“Windows身份validation” 我禁用了 “ASP.NET模拟” 身份validation提供程序列表“协商:Kerberos”,“协商”和“NTLM” 我禁用了“Kernal模式身份validation”,因为它不能与“Kerberos”提供程序一起使用。 所以上面阻止我完全登录我的MVC应用程序,它只是不断地提示我一遍又一遍地提取我的凭证。 为了解决这个问题,我将我的web服务器名称放在我的域控制器中,然后我转到“委派”选项卡并将其更改为“信任此用户以便委派任何服务(仅限Kerberos)” 没有这个设置,允许我登录我的MVC应用程序。 但这一次,它既没有将用户名或密码委托给SDK。 实际上,我获得的用户名是PoolApp用户名而不是经过身份validation的用户。 为了涵盖我的所有基础,我将AppPool用户更改为对SDK所连接的服务器具有Windows身份validation访问权限的实际用户。 果然工作得很好,我能够连接到第二个服务。 但是, 始终将运行AppPool的用户名/密码委派给SDK,而不是委派连接/validation的用户名/密码。 总之,IIS不会出于某种原因将用户名/密码委托给SDK。 如何让IIS将连接的用户会话/凭证委派给其他服务? 由于用户正在使用“NTLM”身份validation而不是Kerberos,因此委派也可能失败,但服务器将仅在Kerberos身份validation时委派“如果是这种情况,我该如何强制用户使用”Kerberos “身份validation而不是”NTLM?

在全局编录中validation用户

我需要在给定userId,域和密码的情况下validation用户的Windows凭据。 我们的Active Directory包含多个域,其中一些我们可以使用以下代码列出: var domains = System.DirectoryServices.ActiveDirectory.Forest.GetCurrentForest().Domains; 但是,我们还拥有属于林外域的用户。 但是,我可以从全球目录(GC)访问它们。 下面的代码允许我获取userid的目录条目。 System.DirectoryServices.DirectoryEntry globalCatalogDE = new System.DirectoryServices.DirectoryEntry(“GC://DC=nsroot,DC=net”); var ds = new System.DirectoryServices.DirectorySearcher(globalCatalogDE); ds.Filter = “(&(objectClass=user)(sAMAccountName=” + userId + “))”; System.DirectoryServices.DirectoryEntry userDE = ds.FindAll()[0].GetDirectoryEntry(); 如何validation属于我无法直接访问但在GC中可用的域的用户?

关于IIS和Windows身份validation的NancyFx

我已经将MVC + AngularJS应用程序转换为使用NancyFx + AngularJS(因为我并没有真正使用任何MVC的东西)。 我正在使用VS2013,它在IIS(以及我的开发环境中的IIS Express)下运行。 我可以通过检查OwinEnvironment的server.User组件来获取当前登录的用户。 我目前正在使用Microsoft.Owin.Host.SystemWeb作为大多数演示。 当我在我的模块中向Get请求添加RequiresAuthentication时,即使我已登录,我也会在IE中弹出一个输入凭据。即使我输入凭据,我只是不断获得弹出窗口,它永远不会到达网站。 我有一些问题: 1)如果使用Windows身份validation和RequiresAuthentication,我仍然需要在web.config中使用身份validation模式=“Windows”。 2)是否可以在没有Microsoft.Owin.Host.SystemWeb的情况下使用IIS以避免ASP.NET管道? 我遇到过关于Project Helios和Microsoft.Owin.Host.IIS(Nuget)的文章,但这已经有一段时间没有用过了,只是一个Alpha – 这是怎么回事? 3)使用IIS,NancyFX和Windows身份validation以及RequiresAuthentication和Roles的事实上的方法是什么? 我看了很多文章和stackoverflow问题,但还没有找到明确的答案。

自定义身份validation的HttpModule如何与Windows身份validation交互?

我正在尝试创建一个自定义HttpModule,它控制哪些用户可以查看网站。 我正在尝试利用Windows身份validation来执行此操作。 在单个页面上,我可能会这样做: if (HttpContext.Current.User.Identity.Name.Contains(“jsmith”)) { Response.Write(“You do not have the correct permissions to view this site.”); Response.End(); } 但是因为我想在应用程序级别更加可配置,我想使用HttpModule。 这是我对代码的开始: using System; using System.Web; public class CustomAuthHttpModule : IHttpModule { public void Dispose() { } public void Init(HttpApplication context) { context.BeginRequest += new EventHandler(OnBeginRequest); context.EndRequest += new EventHandler(OnEndRequest); } void OnBeginRequest(object sender, EventArgs e) […]

如何在asp.net中获取当前的Windows用户?

我尝试了很多代码,它在我的本地服务器上成功运行。 但我尝试将远程服务器放到另一个字符串,如IIS APPPOOL,“servername”….我改为IIS管理器中的一些设置,但我失败了。 如何在远程服务器中获取用户名 我尝试了一些代码,如: System.Security.Principal.WindowsPrincipal= System.Threading.Thread.CurrentPrincipal as System.Security.Principal.WindowsPrincipal; string strName = p.Identity.Name; 要么 string strName = HttpContext.Current.User.Identity.Name.ToString(); 要么 string Name = Environment.GetEnvironmentVariable(“USERNAME”); 要么 string Name = System.Security.Principal.WindowsIdentity.GetCurrent().Name; 要么 WindowsIdentity currentIdentity = WindowsIdentity.GetCurrent(); string usernamex = currentIdentity.Name.ToString(); 要么 HttpContext.Current.User.Identity.Name.ToString();

如何从Windows操作系统获取当前用户名和密码。

故事:我有英特尔原装主板提供的主板CD。 当我安装驱动程序时,它会询问管理员帐户的用户名和密码。 安装每个驱动程序后,系统将重新启动,不会要求输入用户名和密码。 我的想法是Windows应该有办法validation并输入用户名和密码 你能否告诉我如何在C#中做到这一点,谢谢。

测试使用Windows身份validation的Intranet站点

我正在尝试开发一个使用Windows身份validation的Intranet应用程序/网站。 我想用多个用户,角色等来测试它。 目前我只使用自己的域帐户。 有没有办法可以为网站模拟不同的用户?