标签: windows-authentication

当整个应用程序使用Windows Authenticaion时,在单个控制器上使用MVC4中的匿名身份验证

我有一个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-authentication asp.net-mvc-4

19
推荐指数
2
解决办法
2万
查看次数

Windows身份验证与表单身份验证

我试图了解Windows身份验证,表单身份验证及其差异的概念.我很迷惑.有人可以帮我澄清一下.

谢谢.

windows authentication forms-authentication windows-authentication

18
推荐指数
4
解决办法
4万
查看次数

HTTP错误404.15 - 未找到...因为查询字符串太长

我查了很多关于这个错误的帖子,但还没能解决问题.

我有一个在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授权规则部分中,我设置为拒绝"匿名用户"并允许"所有用户"

我哪里错了?

iis asp.net-mvc windows-authentication

18
推荐指数
3
解决办法
4万
查看次数

如何配置PostgreSQL以使用Windows身份验证?

我正在尝试设置PostgreSQL并且只允许某些Windows用户访问数据库中的数据.使用MS SQL设置Windows身份验证非常简单,但我无法弄清楚如何在PostgreSQL中设置它.

我已经浏览了http://www.postgresql.org/docs/current/static/auth-methods.html上的文档.

并编辑了pg_hba文件.但在这样做之后,PostgreSQL服务无法启动.

postgresql windows-authentication

17
推荐指数
2
解决办法
1万
查看次数

更改用户登录名后的身份验证错误

我们有一位最近更名的用户.

假设旧用户名是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数据,而且我们没有更多想法可能出错.

asp.net windows-authentication

17
推荐指数
1
解决办法
7143
查看次数

在Mac上使用JBDC的SQL Server的Windows身份验证

是否可以使用Mac上的Windows身份验证/集成安全性连接到SQL Server?我使用的是Microsoft提供的type 4 JDBC驱动程序.前端(表单应用程序)用Java编码.一切都在Windows上完美运行,但办公室里的一个人使用Mac.

这可能吗?仅供参考,我从未使用过Mac,因此我非常喜欢它们.我在互联网上搜索过但没有找到解决方案.先感谢您.

java sql sql-server macos windows-authentication

17
推荐指数
2
解决办法
2万
查看次数

如何基于角色显示或隐藏控件 - ASP.NET MVC 4 Razor

我正在使用ASP.NET MVC 4应用程序.我有一个仪表板,我的用户组将基于Windows域所以我使用WIndows身份验证来验证用户.我创建了示例应用程序,它通过覆盖函数AuthorizeAttribute,ActionFilterAttribute使用自定义身份验证.这是一个好方法吗?

  1. 哪个属性最适合用于身份验证?

我有一个仪表板.所以我需要根据角色显示或隐藏控件.假设有3个网格(表),如果Admin登录,他可以看到3个网格(表格).但是如果支持用户登录,他只能看到2个网格(表格).

我的计划是为每个网格创建部分视图,因此每个局部视图都会有一个Action和Controller.将有一个数据库,我将指定每个组可以执行的操作.这样我就可以过滤请求了.

2如何根据角色隐藏或显示部分视图?

我尝试了一些SO链接,但所有他们都在谈论2,3个角色并且它是硬编码的.在我看来,角色可能会有所不同,我们使用db来设置角色的访问权限.

提前致谢.

.net asp.net asp.net-mvc authorization windows-authentication

17
推荐指数
3
解决办法
3万
查看次数

从Visual Studio运行项目时,Windows身份验证不起作用

当我在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

17
推荐指数
2
解决办法
2万
查看次数

linux docker容器中的Windows身份验证

我正在尝试在 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)

kerberos windows-authentication gssapi http-negotiate gss

17
推荐指数
2
解决办法
1万
查看次数

应用池身份与假冒身份?

我发现只有一个与此相关的帖子,但它没有回答这个问题.

我很想知道在web.config中设置模拟用户与在IIS中设置应用程序池标识之间的区别的链接或解释.他们似乎是独立的,并且对细节差异感到困惑.谢谢.

c# asp.net impersonation iis-7 windows-authentication

16
推荐指数
1
解决办法
6495
查看次数