如何使用Identity Server 4正确实现Windows身份验证?有没有样品可以做到这一点?
我查看了IdentityServer 4的源代码,在AccountController的Host项目中,我注意到有Windows身份验证检查,它们是作为外部提供程序实现的.但我似乎无法工作配置.有没有人用idsrv4成功实现了Windows身份验证?
我正在开发一个多语言的企业网站,我想将本地化存储在数据库中.
我已经阅读了以下非常好的文章,但我个人认为这是一个开销,我可以轻松实现同样的目标:
我已经设置了一些基础,但我不确定我的方法是否正常.基本上我已经创建了一个与DI寄存器的服务.
public interface ILocalizedStringProvider
{
string GetLocalizedString(string key);
string GetLocalizedString(string key, string deafultValue);
}
Run Code Online (Sandbox Code Playgroud)
我也创建了一个像这样的Html帮助器
public static MvcHtmlString LocalizedString(this HtmlHelper helper, string key, string defaultValue)
{
if (string.IsNullOrEmpty(defaultValue)) return new MvcHtmlString("");
if (string.IsNullOrEmpty(key)) return new MvcHtmlString(defaultValue);
ILocalizedStringProvider localizedStringProvider = DependencyResolver.Current.GetService<ILocalizedStringProvider>();
if (localizedStringProvider == null)
{
return MvcHtmlString.Create(defaultValue);
}
string val = localizedStringProvider.GetLocalizedString(key, defaultValue);
if (string.IsNullOrEmpty(val))
{
return MvcHtmlString.Create(defaultValue);
}
return MvcHtmlString.Create(val);
}
Run Code Online (Sandbox Code Playgroud)
然后只需从视图中调用帮助程序.
首先,我想知道这种方法是否良好,如果不是反模式.
其次我关注的是这一行:
ILocalizedStringProvider localizedStringProvider = DependencyResolver.Current.GetService<ILocalizedStringProvider>();
Run Code Online (Sandbox Code Playgroud)
使用构造函数注入来解析控制器中的服务ILocalizedStringProvider是否更好?让控制器使用本地化填充ViewBag?
谢谢!
我在我的项目中使用ASP.Net MVC 5和ASP.Net Identity 2.1 alpha.
对于身份我已经实现了用户管理器以使用Guid作为密钥.
我正在实施双因素身份验证.当我尝试获取用户ID时
var userId = await SignInManager.GetVerifiedUserIdAsync();
Run Code Online (Sandbox Code Playgroud)
我收到一个错误
Invalid cast from 'System.String' to 'System.Guid'.
Run Code Online (Sandbox Code Playgroud)
它是Identity alpha发布的错误还是我遗漏了什么?如果我使用单因素身份验证一切都很好.用户在数据库中创建,您可以更改用户数据等.
任何建议将不胜感激.谢谢.