我有一个MVC4 Web应用程序,它使用Windows身份验证,在web.config我有,
<authentication mode="Windows" />
而且工作正常,一切正常.
但是现在我需要一个控制器(实际上是一个Web API控制器),应该从第三方组件匿名访问.问题是,每次我想调用此方法时,它都会请求用户凭据.
我尝试将AllowAnonymous
属性放到控制器和方法但是没有成功.
[AllowAnonymous]
public bool Get(string Called, string Calling, string CallID, int direction)
我使用匿名身份验证和Windows身份验证启用了IIS Express和IIS 8.
似乎Windows身份验证在任何其他身份验证之前,并且无法覆盖.
有没有办法实现这个目标?
我试图了解Windows身份验证,表单身份验证及其差异的概念.我很迷惑.有人可以帮我澄清一下.
谢谢.
windows authentication forms-authentication windows-authentication
我查了很多关于这个错误的帖子,但还没能解决问题.
我有一个在Windows 8 pro上运行的VS2013内置的简单MVC5网站.创建站点后,将选择单个帐户的选项.我现在需要启用Windows身份验证,以便只有AD帐户用户可以使用网站和授权,以便我可以限制对特定AD组的某些视图/控制器的访问.
在VS中选择了Web项目后,我更新了属性窗口(F4),以便将匿名身份验证设置为禁用,并将Windows身份验证设置为已启用.
该项目的web.config现在包含以下部分:
<system.web>
<authentication mode="Windows" />
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
<authorization>
<deny users="?" />
</authorization>
</system.web>
<system.webServer>
<modules>
<remove name="FormsAuthenticationModule" />
</modules>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
我从IIS或F5访问该站点我收到错误:HTTP错误404.15 - 未找到请求筛选模块配置为拒绝查询字符串太长的请求.我注意到有些东西已经循环以提供一个ReturnUrl,它是查询字符串中的重复长连接.
在IIS\Authentication部分中,我已设置为禁用"匿名身份验证,ASP.Net模拟和表单身份验证".在IIS.Net授权规则部分中,我设置为拒绝"匿名用户"并允许"所有用户"
我哪里错了?
我正在尝试设置PostgreSQL并且只允许某些Windows用户访问数据库中的数据.使用MS SQL设置Windows身份验证非常简单,但我无法弄清楚如何在PostgreSQL中设置它.
我已经浏览了http://www.postgresql.org/docs/current/static/auth-methods.html上的文档.
并编辑了pg_hba文件.但在这样做之后,PostgreSQL服务无法启动.
我们有一位最近更名的用户.
假设旧用户名是old.name,新用户名是new.name.
在使用新用户名编辑AD和logout/login中的详细信息后,我们的ASP.NET应用程序将显示旧名称.
使用Windows身份验证的纯ASP.NET,没有MVC.
获取用户名的代码是:
WindowsPrincipal wp = (WindowsPrincipal)HttpContext.Current.User;
String userName = wp.Identity.Name.Substring(wp.Identity.Name.IndexOf("\\") + 1);
Run Code Online (Sandbox Code Playgroud)
这将返回old.name,而不是new.name.
我检查了IIS日志文件,这些文件显示了新名称:
2011-04-05 11:41:44 W3SVC1 MARS 10.57.1.64 GET /eft/Default.aspx - 80 - 10.57.0.161 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.2;+Trident/4.0;+.NET+CLR+1.1.4322;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.4506.2152;+.NET+CLR+3.5.30729;+.NET4.0C;+.NET4.0E) 401 2 2148074254
2011-04-05 11:41:44 W3SVC1 MARS 10.57.1.64 GET /eft/Default.aspx - 80 SANOMABP\new.name 10.57.0.161 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.2;+Trident/4.0;+.NET+CLR+1.1.4322;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.4506.2152;+.NET+CLR+3.5.30729;+.NET4.0C;+.NET4.0E) 200 0 0
Run Code Online (Sandbox Code Playgroud)
我们已经重新启动了应用程序池,我们检查了AD数据,而且我们没有更多想法可能出错.
是否可以使用Mac上的Windows身份验证/集成安全性连接到SQL Server?我使用的是Microsoft提供的type 4 JDBC驱动程序.前端(表单应用程序)用Java编码.一切都在Windows上完美运行,但办公室里的一个人使用Mac.
这可能吗?仅供参考,我从未使用过Mac,因此我非常喜欢它们.我在互联网上搜索过但没有找到解决方案.先感谢您.
我正在使用ASP.NET MVC 4应用程序.我有一个仪表板,我的用户组将基于Windows域所以我使用WIndows身份验证来验证用户.我创建了示例应用程序,它通过覆盖函数AuthorizeAttribute,ActionFilterAttribute使用自定义身份验证.这是一个好方法吗?
- 哪个属性最适合用于身份验证?
我有一个仪表板.所以我需要根据角色显示或隐藏控件.假设有3个网格(表),如果Admin登录,他可以看到3个网格(表格).但是如果支持用户登录,他只能看到2个网格(表格).
我的计划是为每个网格创建部分视图,因此每个局部视图都会有一个Action和Controller.将有一个数据库,我将指定每个组可以执行的操作.这样我就可以过滤请求了.
2如何根据角色隐藏或显示部分视图?
我尝试了一些SO链接,但所有他们都在谈论2,3个角色并且它是硬编码的.在我看来,角色可能会有所不同,我们使用db来设置角色的访问权限.
提前致谢.
.net asp.net asp.net-mvc authorization windows-authentication
当我在IIS上托管我的ASP.NET MVC项目时,Windows身份验证工作正常.但是,如果我从Visual Studio运行它 - 它没有.
这是我的Web.config:
<authentication mode="Windows" />
<authorization>
<deny users="?" />
</authorization>
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
.net asp.net asp.net-mvc windows-authentication asp.net-mvc-4
我正在尝试在 kubernetes 下的 linux docker 容器中使用 windows 身份验证。
我正在关注此设置:https : //docs.microsoft.com/en-us/aspnet/core/security/authentication/windowsauth?view=aspnetcore-3.1&tabs=visual-studio#kestrel
应用程序在 .net core3 中,使用 nuget Microsoft.AspNetCore.Authentication.Negotiate 并在 kestrel 中运行
我已经添加了
services.AddAuthentication(Microsoft.AspNetCore.Authentication.Negotiate.NegotiateDefaults.AuthenticationScheme).AddNegotiate();
Run Code Online (Sandbox Code Playgroud)
也
app.UseAuthentication();
Run Code Online (Sandbox Code Playgroud)
并将我的 devbase 映像设置为
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster as final
USER root
RUN whoami
RUN apt update && apt dist-upgrade -y
ADD ca/ca.crt /usr/local/share/ca-certificates/ca.crt
RUN chmod 644 /usr/local/share/ca-certificates/*
RUN update-ca-certificates
RUN DEBIAN_FRONTEND=noninteractive apt install -y krb5-config krb5-user
COPY krb5.conf /etc/krb5.conf
RUN mkdir /app
RUN echo BQIAAA..== | base64 -d > /app/is.k01.HTTP.keytab
WORKDIR /app
#RUN docker version
RUN groupadd …
Run Code Online (Sandbox Code Playgroud) 我发现只有一个与此相关的帖子,但它没有回答这个问题.
我很想知道在web.config中设置模拟用户与在IIS中设置应用程序池标识之间的区别的链接或解释.他们似乎是独立的,并且对细节差异感到困惑.谢谢.
asp.net ×4
asp.net-mvc ×3
.net ×2
c# ×1
gss ×1
gssapi ×1
iis ×1
iis-7 ×1
java ×1
kerberos ×1
macos ×1
postgresql ×1
sql ×1
sql-server ×1
windows ×1