我正在以标准方式注册.NET核心ASP.NET应用程序的身份验证:
public void ConfigureServices(IServiceCollection services) {
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(o => o.LoginPath = new PathString("/Auth/Login"));
// ...
}
我怎样才能得到这个值以供使用呢?假设我在控制器中有一些逻辑,无论出于什么原因,都想要有登录页面的路径…像这样:
public class HomeController : Controller {
public async Task<ActionResult> Index() {
var loginUrl = ...;
// ...
}
}
在这个例子中,我如何获取loginUrl
?
发布于 2019-01-04 03:50:22
将登录路径分配给另一个静态类中的常量值。然后使用操作中的请求对象属性构建url:
$"{Request.Scheme}://{Request.Host}{Constants.LoginPath}“loginUrl = var
上面的代码将是一个字符串,但如果需要,您可以创建一个Uri。
发布于 2019-01-04 13:06:14
对于LoginPath
,您可以尝试IOptionsMonitor<CookieAuthenticationOptions>
,如下所示:
public class HomeController : Controller
{
private readonly CookieAuthenticationOptions _cookieAuthenticationOptions;
public HomeController(IOptionsMonitor<CookieAuthenticationOptions> optionsMonitor)
{
_cookieAuthenticationOptions = optionsMonitor.Get(CookieAuthenticationDefaults.AuthenticationScheme);
var loginPath = _cookieAuthenticationOptions.LoginPath;
}
}
https://stackoverflow.com/questions/54028557
复制相似问题