我开始为 Nancy 编写一个 LoginModule,但我突然想到我可能需要以不同的方式执行身份验证。在南希有一种公认的身份验证方式吗?我现在正在计划两个项目:web 和 json 服务。我将需要对两者进行身份验证。
问问题
14853 次
2 回答
24
正如 Steven 所写,Nancy 支持开箱即用的基本身份验证和表单身份验证。看看这两个演示应用程序,看看如何做:https ://github.com/NancyFx/Nancy/tree/master/samples/Nancy.Demo.Authentication.Forms和https://github.com/NancyFx/ Nancy/tree/master/samples/Nancy.Demo.Authentication.Basic
从这些演示中的第二个开始,这里是一个需要身份验证的模块:
namespace Nancy.Demo.Authentication.Forms
{
using Nancy;
using Nancy.Demo.Authentication.Forms.Models;
using Nancy.Security;
public class SecureModule : NancyModule
{
public SecureModule() : base("/secure")
{
this.RequiresAuthentication();
Get["/"] = x => {
var model = new UserModel(Context.CurrentUser.UserName);
return View["secure.cshtml", model];
};
}
}
}
以及在请求管道中设置表单身份验证的引导程序片段:
protected override void RequestStartup(TinyIoCContainer requestContainer, IPipelines pipelines, NancyContext context)
{
// At request startup we modify the request pipelines to
// include forms authentication - passing in our now request
// scoped user name mapper.
//
// The pipelines passed in here are specific to this request,
// so we can add/remove/update items in them as we please.
var formsAuthConfiguration =
new FormsAuthenticationConfiguration()
{
RedirectUrl = "~/login",
UserMapper = requestContainer.Resolve<IUserMapper>(),
};
FormsAuthentication.Enable(pipelines, formsAuthConfiguration);
}
于 2011-11-16T21:25:35.697 回答
1
我使用 Nancy 创建了一个带有用户管理的示例表单身份验证 Web 应用程序,以供我自己学习。如果你想玩它,它在 Github 上。
于 2015-01-16T17:49:24.800 回答