Tag: 认证

如何使用非交互式身份validation连接到Power BI API?

用C#编码。 我正在遵循这个指南: https://azure.microsoft.com/en-us/documentation/articles/resource-group-authenticate-service-principal/#authenticate-service-principal-with-password—powershell%E2%80%8C%E2 %80%8B 但它不起作用而且不是Power BI特定的,因此我不确定如何将其应用于Power BI API。 在我尝试连接到Power BI时,我收到403 Forbidden响应。 var authenticationContext = new AuthenticationContext(“https://login.windows.net/” + Properties.Settings.Default.TenantID); var credential = new ClientCredential(clientId: Properties.Settings.Default.ClientID, clientSecret: Properties.Settings.Default.ClientSecretKey); var result = authenticationContext.AcquireToken(resource: “https://management.core.windows.net/”, clientCredential: credential); if (result == null) { throw new InvalidOperationException(“Failed to obtain the JWT token”); } string accessToken = result.AccessToken; string responseContent = string.Empty; […]

Membership.ValidateUser很慢

我正在使用System.Web.Sercurity.Membership方法来处理我们的Web服务的用户。 我在测试期间非常满意,因为我们的数据库和Web服务驻留在同一台服务器上。 当数据库和Web服务移动到单独的服务器时,当我们使用Membership.ValidateUser(username, password)命令对用户进行身份validation时,我们会遇到大量延迟。 配置文件详细信息: type=”System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=*********” connectionStringName=”BlaBlaConnection” enablePasswordRetrieval=”false” enablePasswordReset=”true” RequiresQuestionAndAnswer=”false” requiresUniqueEmail=”false” maxInvalidPasswordAttempts=”5″ minRequiredPasswordLength=”6″ minRequiredNonalphanumericCharacters=”0″ passwordAttemptWindow=”10″ applicationName=”/”

为什么Asp.Net核心认证方案是强制性的

我非常沮丧的是,在Asp.Net Core中,身份validation方案似乎是强制性的。 我的目标是构建一个API,我不想知道客户端的任何信息。 我已经建立了自定义身份validation和授权,工作正常。 我没有使用身份或cookie。 但是,如果没有有效的身份validation方案,我将无法返回403 Forbid结果,否则会出现以下exception… System.InvalidOperationException:没有配置身份validation处理程序来处理该方案:自动 我的问题是,我是否可以将MVC配置为不使用身份validation方案或创建身份validation方案而不依赖于登录路径或任何路径?

如何强制只匿名访问控制器操作?

我可以使用[AllowAnonymous]属性允许用户访问控制器操作,但是是否有一个属性只允许匿名用户执行操作? 例如[AllowAnonymousOnly]

如何从ASP.Net OpenID连接OWIN组件设置声明?

我对使用新的ASP.Net OpenID Connect框架有疑问,同时在身份validation管道中添加新的声明,如下面的代码所示。 我不确定幕后会发生多少’魔术’。 我认为我的大部分问题都集中在不了解OWIN认证中间件而不是OpenID Connect上。 Q1。 我应该从OwinContext.Authentication.User手动设置HttpContext.Current.User和Thread.CurrentPrincipal吗? Q2。 我希望能够像以前一样使用System.IdentityModel.Claims.Claim向对象添加对象类型。 新的System.Security.Claims.Claim类只接受字符串值? Q3。 我是否需要在System.Security.Claims.CurrentPrincipal为我的ClaimsPrincipal使用新的SessionSecurityToken包装器来序列化为cookie – 我正在使用app.UseCookieAuthentication(new CookieAuthenticationOptions()); 但是现在确定在维护我在SecurityTokenValidated事件期间添加的任何其他声明方面究竟做了什么? public void ConfigureAuth(IAppBuilder app) { app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType); app.UseCookieAuthentication(new CookieAuthenticationOptions()); app.UseOpenIdConnectAuthentication( new OpenIdConnectAuthenticationOptions { ClientId = clientId, Authority = authority, PostLogoutRedirectUri = postLogoutRedirectUri, Notifications = new OpenIdConnectAuthenticationNotifications() { SecurityTokenValidated = (context) => { // retriever caller data from the incoming […]

无法将用户存储在默认的MVC应用程序中

我之前使用授权时遇到了一些问题,因此我在Azure上的新资源组中获得了全新的一切 – 新计算机,新操作系统,VS的全新安装,新应用和数据库。 整个shabang。 我可以确认我可以登录到Azure DB,如下面的屏幕截图所示。 我可以看到数据库,表格,用户等。 问题是,虽然它在本地工作(使用我自动提供的默认连接字符串),但它在Azure中表现不佳(尽管我从那里使用发布文件)。 它说了一些关于文件未找到的内容,根据这个答案 ,我需要更改连接字符串。 我改变后,我得到以下错误。 请注意防火墙已打开,我可以在运行应用程序代码时访问数据库。 我觉得在自动配置身份validation部分时会出现问题。 不过,我对如何解决问题没有想法。 [SqlException(0x80131904):用户’Chamster’登录失败。 已为此会话分配了跟踪ID“09121235-87f3-4a92-a371-50bc475306ca”。 在需要帮助时,请将此跟踪ID提供给客户支持。] 我正在使用的连接字符串是这个。 Server=tcp:f8goq0bvq7.database.windows.net,1433; Database=Squicker; User ID=Chamster@f8goq0bvq7; Password=Abc123(); Encrypt=True; TrustServerCertificate=False; Connection Timeout=10; 这个问题困扰了我一段时间,我会在两天内把它给它。 任何建议都热烈赞赏。

如何在MVC 5中设置自定义ClaimsPrincipal?

我创建了一个自定义主体类 public class FacebookPrincipal : ClaimsPrincipal { public JObject Data { get; set; } } 我想用它。 当用户登录时,我尝试设置 var fbP = new FacebookPrincipal { Data = user.Data }; Thread.CurrentPrincipal = fbP; AuthenticationManager.User = fbP; HttpContext.User = fbP; 它在我设置之后就可以正常工作,但是当我home/index该值就会丢失 var user = HttpContext.GetOwinContext().Authentication.User; var bbbb = this.User; var cccc = ClaimsPrincipal.Current; 所有上述方法都返回一个类型为ClaimsPrincipal的Principal,并且转换为FacebookPrincipal返回null。 如何设置自定义主体?

如何结束用户会话并确保用户已注销?

我是.aspx的新手,现在事情是因为我正在做一个支持Web的项目,我从用户那里登录。 我拖放了登录模板,然后使用了 Session[“Authentication”] = username.Tostring(); 存储当前登录用户的信息等等。 现在我甚至在右上角使用了一个超链接“Logout”,然后将其转移到Login页面。 (如果这是错误的转移方式请让我知道,我通过互联网学习所有).. 现在,如果在网上运行,我可以轻松登录,但是当我通过超级链接“注销”注销时,它会再次进入“登录”页面,但如果我按下浏览器的后退按钮,它会再次将控件传输到数据页面,我可以再次执行数据操作。 我用过这个 Session[“Authenticate”] = null 在登录页面的页面加载时,只有在登录按钮单击时,用户才能再次输入 Session[“Authenticate”] = username.Tostring(); 然后我在数据页的每个页面加载时使用了一个检查 if(Session[Authentiacte”] == null) Server.Tranfer(“LoginPage.aspx”); 这并没有解决我的问题,请任何人都可以给出提示或链接或提示,以改善我的注销方式? 我在没有任何.net或aspx知识的情况下讨论了这个项目,我仍在学习所有内容,请提前向我表示怀疑。

IIS 7.5中的MVC5与Windows身份validation:无法登录

我正在尝试保护Asp.Net MVC5应用程序以使用Windows身份validation。 我主要关注这篇文章: http : //msdn.microsoft.com/en-us/library/gg703322%28v=vs.98%29.aspx 当我转到页面时,我会看到登录/用户名文本框: 我键入了正确的用户名/密码,我再次被要求提供相同的详细信息。 一次又一次。 我曾尝试在登录前添加机器名称(本地机器没有域名),但没有运气。 在web.config我有: 在IIS 7.5中,我有以下用于身份validation: 我请求的控制器操作如下所示: public partial class HomeController : BaseController { private readonly IMediator mediator; public HomeController(IMediator mediator) { this.mediator = mediator; } public virtual ActionResult Index() { var model = mediator.Request(new MenuModelQuery()); return View(model); } 如果我关闭任何身份validation(启用匿名) – 一切正常。 我尝试过为网站的应用程序池玩不同的用户 – 没有变化。 我已将[AllowAnonymous]属性添加到控制器操作 – 没有更改。 […]

有关Windows窗体应用程序的身份validation和授权的任何框架?

我是C#开发人员。 我开发了Windows和Web应用程序。 我想构建一个具有基于角色的系统的Winforms应用程序。 所有用户都必须在角色/组中。 然后我们为角色/组分配“查看,添加,更新,…”等权限。 角色/组是动态的,因此我们允许用户定义它。 是否有任何框架和良好的示例项目来实现它?