我有一个运行的ADFS服务器(3.0)和一个带有请求的api,这些请求通过ADFS服务器提供的承载令牌进行身份验证。作为使用ADFS授权的请求的一部分,我必须指定重定向uri:
这适用于生产环境,但对于开发和测试环境,我不想通过adfs进行身份验证(如果我不需要)
有没有办法实现这个目标?我不想为每个环境创建多个adfs客户端,只是为了拥有单独的重定向uris。对于本地的其他开发人员,他们可能会在我可能正在使用https://localhost/my-app的不同位置设置该网站,但另一位开发人员正在使用https://localhost/workspace2/my-app等。
我是否可以忽略在开发和测试环境中不得不去ADFS获取承载令牌,或者在没有多个adfs客户端的情况下使用单独的重定向uris?
由于
答案 0 :(得分:0)
为了将来参考,我遇到了类似的问题。我最终做的就是,在web.config和web.config转换之间切换
<authentication mode="Windows" />
和
对于web.config转换,<authentication mode="None" />
或<authentication mode="Windows" xdt:Transform="Replace" />
取决于环境所需的配置
然后快速检查启动文件
public void ConfigureAuth(IAppBuilder app)
{
if (AuthenticationMode == System.Web.Configuration.AuthenticationMode.Windows)
{
return;
}
//rest of your authentication logic
}
private static System.Web.Configuration.AuthenticationMode AuthenticationMode
{
get
{
// gets a config file from the root of the system
var configuration = WebConfigurationManager.OpenWebConfiguration("~");
// gets the web.config part related with authentication
var authenticationSection = (AuthenticationSection)configuration.GetSection("system.web/authentication");
return authenticationSection.Mode;
}
}
通过这种方式,我能够在不同环境(test / staging / prod)中的身份验证类型之间进行无缝切换。