Tag: authentication

mvc 5检查用户角色

如何在mvc 5中找到登录用户的角色? 我通过此代码创建了用户 private bool AddUserAndRole() { IdentityResult ir; var rm = new RoleManager (new RoleStore(new ApplicationDbContext())); ir = rm.Create(new IdentityRole(“admin”)); var user = new ApplicationUser() { UserName = “Admin” }; var result = UserManager.Create(user, “somepassword”); UserManager.AddToRole(user.Id, “admin”); return true; } 我在该网站上登录之后。 如何在控制器中我可以检查该用户是否有角色==“admin”? 我发现只有一种看起来不那么快的方法。 var rm = new RoleManager(new RoleStore(new ApplicationDbContext())); var role = rm.FindByName(“admin”); […]

MVC 5 IoC和身份validation

我即将开始一个项目,我将使用MVC5。 但是,由于我想使用IoC并稍后重用我的用户表,并向其添加自定义内容,我发现很难看到我如何使用MVC5附带的新Identity框架。 我越来越关注基本forms的认证。 你有什么解决方案? 我的需求: 必须注入用户存储库/服务 用户存储库必须驻留在DAL中 用户存储库必须能够支持除EF之外的其他技术 使用OpenID和OAuth进行身份validation必须要轻松实现 必须安全 应该可以在其他项目中重复使用,例如。 WPF 我一直在寻找答案,但我看到的一切都是在控制器中硬编码的。 你是怎么解决的? 您是从头开始编写的,还是可以绑定到可以扩展到其他.NET平台的东西,如WCF和WPF? 以下代码直接来自默认ASP.NET MVC 5模板中的AccountController。 它首先做的是Bastard Injection 。 [Authorize] public class AccountController : Controller { public AccountController() : this( new UserManager( new UserStore( new ApplicationDbContext()))) { } public AccountController(UserManager userManager) { UserManager = userManager; } } 接受的答案将交给那个人,它向我展示他们所做的事情,其中​​包含了上述要求

ASP.NET Core 2.0 Preview 1:如何使用自定义登录路径设置Cookie身份validation

在ASP.NET Core 2.0中,.UseAuthentication()中间件有一个重大更改,不再允许此处提到的旧语法工作。 新版本似乎在addAuthentication中处理配置,但我无法在任何地方找到有关如何更改指定自定义登录和注销URL的旧代码的任何详细信息。 services.AddAuthentication(o => { // Where can I specify this????? var opt = new CookieAuthenticationOptions() { LoginPath = “/api/login”, LogoutPath = “/api/logout”, }; o.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme; o.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme; }); 任何帮助,将不胜感激…

用于签署Flickr API请求的无效签名(在控制台中进行模拟)

我正在尝试对Flickr API进行身份validation,以获取我想为自己制作的演示应用程序。 然后我将使用我将学习Flick API的新function扩展此应用程序。 所以这只是我想要玩的东西。 但是现在我在获取请求令牌方面遇到了一些麻烦。 我在这里关注Flickr身份validation文档: Flickr身份validation 我还发现了这个Mathlabscript: Flickr API和基于OAuth的用户身份validation 所以基于这些来源我现在有以下控制台应用程序: class Program { private static string Secret = “2b2b2b2b2b2b2b2b2b”; private static string ConsumerKey = “1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a”; static void Main(string[] args) { Random rand = new Random(); string nonce = rand.Next(9999999).ToString(); string timestamp = ((int)(DateTime.UtcNow – new DateTime(1970, 1, 1)).TotalSeconds).ToString(); Console.WriteLine(“Nonce: ” + nonce); Console.WriteLine(“TimeStamp: […]

如何在ASP.Net MVC控制器中正确使用ServiceStack身份validation

我在使用ServiceStack [Authentication]属性在ASP.Net MVC4控制器中工作时遇到问题,即使在正确提交登录详细信息之后,具有该属性的页面/操作方法也会将用户重定向到登录页面。 我遵循了SocialBootstrapApi示例,不同之处在于所有身份validationWeb服务调用都是从控制器进行的: this.CreateRestClient().Post(“/register”, model); 到目前为止我做过的其他事情: 使用我自己的用户会话实现子类化AuthUserSession(与示例没有太大区别,但使用我自己的User表实现) 在我的BaseController上inheritanceServiceStackController,覆盖默认登录URL 使用我的用户会话实现在AppHost中启用Authfunction 注册确实有效,用户身份validation逻辑工作(即使会话不存在),我可以在请求中看到ss-id和ss-pid cookie。 所以我的完整问题清单: 如何使[Authenticate]属性起作用(或者,我做错了什么)? 如何在MVC控制器中保存和重用用户会话? 目前this.UserSession始终为null。 如何注销用户? this.CreateRestClient().Get(“/auth/logout”); 似乎没有用。 更新1: 在我提交任何凭据之前,当我尝试加载安全页面(具有[Authenticate]属性的页面)时,会创建会话cookie( ss-id和ss-pid )。 这是预期的行为吗? 更新2: 我可以看到会话保存在MemoryCacheClient ,但尝试通过this.Cache.Get(SessionKey)在基本控制器中检索它返回null(其中SessionKey如下: urn:iauthsession:1 )

从登录和注销获得通知

我必须开发一个程序,它在本地PC上作为服务运行,为服务器提供几个用户状态。 一开始我必须检测用户登录和注销 。 我的想法是使用ManagementEventWatcher类并查询Win32_LogonSession ,以便在发生更改时收到通知。 我的第一个测试运行良好,这是代码部分(这将作为服务的线程执行) : private readonly static WqlEventQuery qLgi = new WqlEventQuery(“__InstanceCreationEvent”, new TimeSpan(0, 0, 1), “TargetInstance ISA \”Win32_LogonSession\””); public EventWatcherUser() { } public void DoWork() { ManagementEventWatcher eLgiWatcher = new ManagementEventWatcher(EventWatcherUser.qLgi); eLgiWatcher.EventArrived += new EventArrivedEventHandler(HandleEvent); eLgiWatcher.Start(); } private void HandleEvent(object sender, EventArrivedEventArgs e) { ManagementBaseObject f = (ManagementBaseObject)e.NewEvent[“TargetInstance”]; using (StreamWriter fs […]

从ADFS声明auth

我尝试通过WPF应用程序连接到SharePoint Online实例。 我发现这篇文章描述了一个可能的解决方案,但问题是特定实例前面有一个Active Directory联合身份validation服务(ADFS),我不知道如何获取身份validation令牌。 (我无法为我的应用程序创建证书以对adfs进行身份validation。) 任何已经完成此操作的人都可以通过一些代码片段来支持我吗?

如何支持NTLM身份validation与ASP.NET MVC中的回退forms?

如何在ASP.NET MVC应用程序中实现以下内容: 用户打开内联网网站 如果可能,用户将进行静默身份validation 如果NTLM身份validation没有成功,请向用户显示登录表单 用户指示登录密码,并从预定义域列表中选择域 user使用AD在代码中进行身份validation 我知道如何实现4和5,但无法找到有关如何组合NTLM和表单的信息。 因此,永远不会显示NTLM本机登录/密码对话框 – 透明身份validation或外观漂亮的登录页面。 该怎么办? 是否应该询问用户登录名和密码? 可以使用她当前的凭据(域用户名)而无需输入登录名和密码吗? 更新这些,调查相同的问题: 当我问这个时,我并不完全理解NTLM身份validation如何在内部工作。 这里需要了解的重要一点是,如果用户的浏览器不能正确支持NTLM,或者用户禁用了NTLM支持,那么服务器永远不会有机会解决这个问题。 Windows身份validation的工作原理: 客户端向服务器发送常规HTTP请求 服务器响应HTTP状态401并指示必须使用NTLM身份validation来访问资源 客户端发送NTLM Type1消息 服务器使用质询响应NTLM Type2消息 客户端发送Type3消息以响应challenge 服务器响应请求的实际内容 如您所见,不支持NTLM的浏览器不会转到步骤(3),而是会向用户显示IIS生成的错误401页面。 如果用户没有凭据,则在取消NTLM身份validation后,弹出对话框窗口浏览器也不会继续(3)。 因此,我们没有机会自动将用户重定向到自定义登录页面。 这里唯一的选择是有一个“网关”页面,我们决定用户是否应该支持NTLM,如果是,请重定向到受NTLM保护的主页。 如果没有,请显示登录表单并通过手动输入登录名和密码进行身份validation。 通常通过匹配IP范围或通过检查预定义IP表来基于用户的IP地址和/或主机名做出决定。

将HTTP身份validation与C#WebRequest一起使用

我想向需要身份validation的页面发出Web请求。 我该怎么做呢? 我找到了一些可能使用Credentials属性的东西,但我不确定如何使用它。

c#检查一个组的用户成员?

我有一个代码,用于检查用户是否是AD的成员,工作得很好, 现在我想添加检查用户是否也是组成员的可能性! 我需要修改什么来实现这一点,我做了一些工作,但它失败了! 所以这是我的代码: //Authenticate a User Against the Directory private bool Authenticate(string userName,string password, string domain) { if (userName == “” || password == “”) { return false; } bool authentic = false; try { DirectoryEntry entry = new DirectoryEntry(“LDAP://” + domain,userName, password); object nativeObject = entry.NativeObject; authentic = true; } catch (DirectoryServicesCOMException) { […]