我在MVC 5中使用ASP.NET身份有一个网站来登录用户. 一切都很好. 现在,我的合作伙伴需要在其Winforms应用程序中登录注册用户. 有人知道身份使用的密码哈希算法还是如何对Winforms应用中的用户进行身份验证? 任何提示都会被重新组装. 最好的问候. 解决方案 如果您使用的是MVC应用程序中的Microsoft.aspnet.indity.entityframework,并且Winform应用程序可以访问相同的数据库,则应将其配置为使用与MVC应用程序相同的ConnectionsTring. 使用nuget添加Microsoft.aspnet.Identity.entityFramework. 然后可以使用以下代码验证用户名和密码: public async Task VerifyUserNamePassword(string userName, string password) { var usermanager
以下是关于 asp.net-mvc-5 的编程技术问答
我有一个ASP.NET MVC 5应用程序,并且正在尝试启用Windows身份验证.开发机是Windows Server 2008 R2,II Express 8.0,Visual Studio 2013&.NET Framework 4.5. ,当我浏览该应用程序时,我会发现404错误.该应用程序以 http://localhost:63455/account/login?returnUrl =%2F 进入重定向循环.最终,ReturnUrl最终会很大,因为它会随着每个重定向而被附加到. 我的web.config看起来像这样: 我已经尝试设置匿名身份验证和 Windows身份验证在开发服务器属性上的设置. 我也尝试添加以下appSettings:
我找不到哪个参考组件 user.Identity.name 来自.我如何找到这个?我需要将其添加到类库中,而不是我制作的默认MVC 5应用程序,以便可以访问它? c#class Library/auser.cs public class AUser { public string Username { get { return User.Identity.Name // doesn't notice User } } } 解决方案 似乎在System.Web名称空间中. 编辑 根据您的附加代码,您必须包括完全合格的名称 - 例如: HttpContext.Current.User.Identity.Name 当您在控制器外(或其他类)外.请注意,如果在没有httpcontext的情况下使用MVC类的外部,则将失败(使用NullReferenceExc
我想将ASP.NET MVC 5用于我的Web应用程序.我需要使用windows authentication. 如果我使用windows authentication在哪里阅读用户信息(用户ID和角色)并将其存储到Session? 的地方. 我有一种从这样的数据库中获取用户名的用户信息的方法: public class CurrentUser { public int UserId { get; set; } public string UserName { get; set; } public Roles Roles { get; set; } } public enum Roles { Administrator, Editor, Reader } public class AuthService {
我创建了一个使用集成的Windows身份验证的ASP.NET MVC应用程序.实施了以下授权逻辑: 尝试通过NTLM从Active Directory获取帐户凭据. 如果已收到凭据并且Windows帐户需要权限,则执行请求的行动. 否则转到第2条. 显示Windows身份验证对话框,因此用户可以提供其他凭据: 如果收到另一个凭据并且用户需要权限,则执行请求的诉讼. 如果未收到另一个凭据或帐户权限少于其要求,请重复第2条. 如果取消身份验证对话框,则显示401错误消息. 然后,我使用 victorysaber的解决方案: ,我添加了应用程序的自定义错误页面 protected void Application_EndRequest() { int status = Response.StatusCode; string actionName; if (status >= 400 && status
我创建了一个新的ASP.NET-MVC项目,在设置过程中,我选择使用Windows身份验证. 现在我喜欢将其关闭(至少一段时间). 我将web.config更改为 ,但这确实改变了任何事情.它仍然会提示我.我正在使用IIS Express. 更新:我的意思是在使用Firefox时仍会提示我. Internet Explorer将继续并且不会显示我的域用户名 解决方案 Web配置应覆盖IIS Express配置,但在这种情况下似乎没有.您可以尝试的是在IIS级别上关闭它. 您可以转到此目录\ iisexpress \ config \ applicationhost.config打开此文件并设置. 其他解决方案 1.)关闭vs 2.)删除解决方案旁边的.vs/config或.vs文件夹. I
我在ASP.NET MVC 5框架顶部写了一个Intranet应用程序.我的应用程序配置为通过" Windows身份验证"方法对用户进行身份验证.该应用程序正在IIS 8上运行. 我的应用程序使用第三方SDK与我在同一域上运行的另一个程序进行交互.该第三方应用程序允许用户也可以通过Windows身份验证登录. . 问题 但是,与SDK通信的服务器始终返回"无效的用户名/密码无效". 深处故障排除后,我发现IIS没有返回正确的用户名.它没有返回"已验证的用户",而是返回正在运行池应用程序的用户.因此,要解决此问题,我将应用程序设置更改为以下 我禁用"匿名身份验证" i启用了" Windows Authentication" i启用了" ASP.NET模拟",而" ASP.NET模拟"设置设置为"已验证的用户".笔记: 这需要"经典"托管管道而不是"集成" 一些原因. 我将AppPool托管管道设置更改为"经典" V4 更改了正在运行AppPool的用户到
我需要同时具有Windows身份验证和OWIN(表单)身份验证,但我无法正常工作. 最好的选择是拥有两个具有不同身份验证方法的站点. 我找到了一个可以执行我想要的项目: mvc5-mixedauth .但是它使用了iisexpress,我无法与本地IIS一起使用. 发生的错误是: 请求过滤在Web服务器上配置以拒绝请求,因为查询字符串太长. 如果我删除所有我的 configureAuth()方法 startup.auth.cs 它不会丢弃错误,但我无法登录,因为它需要它做 cookiuthentication . startup.auth.cs: public void ConfigureAuth(IAppBuilder app) { app.CreatePerOwinContext(dbEmployeePortal.Create); app.CreatePerOwinContext
尝试将OWIN和ASPNET身份启用到我的Web API项目(在VS 2013 + .NET 4.5.1中)后,我在每个有效或unvalid(请求none none contranter)请求中会遇到以下错误: An error has occurred. No OWIN authentication manager is associated with the request. System.InvalidOperationException at System.Web.Http.Owin.PassiveAuthenticationMessageHandler.SuppressDefaultAuthenticationChallenges(HttpRequestM
是ASP MVC的新手,我不确定哪个会更适合我的需求.我已经使用Windows身份验证构建了一个Intranet网站,并且能够使用Active Directory角色(例如 )保护控制器和操作. [Authorize(Roles="Administrators")] [Authorize(Users="DOMAIN\User")] public ActionResult SecureArea() { ViewBag.Message = "This is a secure area."; return View(); } 我需要定义自己的安全角色,而不是与AD角色".所需的功能是,根据我的应用程序数据库中与其配置文件相关的一个或多个角色(例如:" Manager","用户","访客","分析师","开发人员"等,认证的用户被授予对特定操作的访问权限. 如何创建自定义角色提供商和/或自定义授权属性? 解决方案 我的解决方案是创建自定义角色提供商.这是我采
我正在尝试创建一个依赖的派对Web应用程序,该应用程序将使用本地ADF作为发行人.使用提供的工具,在Visual Studio 2012中进行此操作非常容易.现在,我正在尝试在Visual Studio 2013中做同样的事情,而且体验有些不同.基本上,我遵循了此博客文章. 我注意到的是,项目中没有FederationMetadata.xml文件,当我浏览模板生成的文件时,我发现IdentityConfig我假设提供了配置,然后将其用于生成FederationMetadata.xml运行时文件...? 对我来说非常重要的最后一件事是,我需要拥有部分,以便我的依赖方应用程序可以设置其所需的索赔.如果项目中没有FederationMetadata.xml文件,该怎么办? 谢谢. 解决方案 是的 - 也注意到这一点 - 我认为这是因为标准元数据路径不符合MVC路由? 美联储:索赔类型的部分仅用于文档.您的申请收到
我们正在从事OWIN MVC5项目.我们使用自己的实现IUserStore来整合我们公司框架的一部分的用户管理.到目前为止,这很好. 我们希望通过索赔提供角色成员资格和其他安全配置.我已经看到(并迅速测试)实现IUserClaimStore或将ClaimsIdentityFactory附加到Usermanager的方法. 在这两种情况下,我都知道索赔存储在用户的cookie以及何时或另一个索赔在Web应用程序后面发生变化时(通过另一个直接访问用户管理存储的应用程序),用户cookie包含旧声明,用户的权限比她应该拥有的. 如果用户索赔的后端配置已更改,如果是的,则在某个时间间隔内检查每个请求或请求的可能性,如果是的,则可以刷新用户cookie. 这是正确的方法,还是MVC5/Owin为遵守此要求的更优雅/有效的方法.如果这是正确和唯一的方法,那么在哪里检查和刷新Cookies信息的最有效的地方? 解决方案 我们将此功能添加到2.0中,这是您将如何配置
我正在使用ASP.NET 5 MVC,OWIN和OAUTH2 BEARER令牌开发Web应用程序. 以下索赔的Indentity System.Security.Claims命名空间. 不幸的是,似乎在ClaimsIdentity实例中添加complexClaim,丢失了派生的类类型信息,并且索赔被存储为a System.Security.Claims.Claim. var complexClaim = new ComplexClaim(@"http://it.test/currentpassport", passport); var claims = new List() { complexClaim }; identity.AddClaims(claims); 当我尝试从身份中恢复索赔时,将其投入到ComplexClaim键入的结果中. var passportClaim = identity.
在与OWIN的MVC5应用程序中,我们还使用本地帐户的其他外部登录(Google).当用户使用其本地帐户登录时,他可以激活记住他的选项,因此他不必每次新登录.当他使用Google-Account登录时,他每次都必须在Google的外部登录按钮上单击. 是否有一个内置选项可以激活外部登录的"记住我"选项?还是有安全的方法来添加此功能? 解决方案 当您登录用户身份时,您只需要设置与true的态度(您还需要添加某种记住我的复选框) AuthenticationManager.SignIn(new AuthenticationProperties { IsPersistent = }, ); 其他解决方案 跟进Hao Kung的建议. 您将在accountController.cs文件中找到有关代码行.默认函数是: private async Task SignInAsync(Applicat
我正在编码具有实体框架6的MVC 5 Internet应用程序,并在使用await关键字时有一个疑问. 这是我的代码: public async Task GetAccount(string userName) { if (Session[userName] == null) { Account account = db.accounts.Where(a => a.userName.Equals(userName)).FirstOrDefault(); if (account == null) { //log out return null; } Session[userName] = account; } return Session[userName] as Account; } 我想在检索Acc
我在Signalr中写了一个相当简单的聊天应用程序. ,如果我使用超过2个选项卡/浏览器/设备连接第三,则永远不会连接并最终引起问题. 为什么我只能与2个用户联系? 我一旦断开另一个2. ,第三个请求就会通过 我使用相同的用户或其他用户都没关系. 我在Windows 10,ASP.NET MVC5上使用Signalr 2.2 在Windows 10上使用IIS 它从不调用集线器代码,如果我尝试在打开该选项卡时与第四客户端连接,则第四个选项卡甚至不会返回视图. $.connection.hub.start().done(function () { //add all existing messages when we start the connection //chat.server.addExistingMessages(); console.log('Now connected, connection ID=' + $.c
我使用 compression-webpack-plugin 在我的ASP.NET MVC 5项目中将我的JavaScript文件压缩为GZ格式. 我 webpack.config.js 带有 compression-webpack-plugin 设置: const CompressionPlugin = require('compression-webpack-plugin'); module.exports = { //... plugins: [ //... new CompressionPlugin({ test: /\.(js|css)$/, filename: '[path].gz[query]', algorithm: 'gzip', deleteOriginalAssets: true }), ], //... }; 它可以正常工作: 下一步是在IIS中启用GZIP压缩,因
奇怪的是我的VS2013项目.我最近将我的项目分支之一从.NET 4.0升级到4.5.1,并使用Nuget软件包管理器将MVC 5与Razor安装,以便我可以拥有WebForms/MVC Hybrid.到目前为止,它运行良好,我可以同时使用WebForms和MVC. 但是,我的所有其他分支机构(例如生产分支)在没有更改时似乎被打破了.当我运行其他项目之一时,我会得到: Could not determine which version of ASP.NET Web Pages to use. 环顾四周后,我看到有人建议将其放在Web.config AppSettings: 现在,当我运行项目时,我得到了: HTTP Error 404.0 - Not Found 还有什么奇怪的是URL指向这一点: http://localhost:53305/Acc