我目前正在南希网站上工作,该网站分为两个部分。一个是字体最终用户,另一个是管理员。两种类型的用户都有不同的登录页面,其中/login
仅允许最终用户登录,admin/login
仅允许管理员登录。
我想要的是IUserMapper
接口的不同实现。我希望在调用UserMapper
时将其解析为/login
,并在调用AdminMapper
路由时将其解析为/admin/login
。 UserMapper
和AdminMapper
课程如下:
public class UserMapper: IUserMapper{
//IUserMapper implementation
}
public class AdminMapper: IUserMapper{
//IUserMapper implementation
}
我在RequestStartup
方法
var formsAuthConfiguration = new FormsAuthenticationConfiguration()
{
RedirectUrl = "~/login",
CryptographyConfiguration = CustomCryptographyConfiguration.Default,
UserMapper = container.Resolve<IUserMapper>()
};
FormsAuthentication.Enable(pipelines, formsAuthConfiguration);
如何在调用IUserMapper
时告诉Nancy将UserMapper
映射到/login
,并在调用AdminMapper
时将/admin/login
映射到@RestController
@RequestMapping("/api")
public class ApiController {
@Autowired(required = true)
PersonService personService; //This is service layer class
@RequestMapping("/add")
public void add(){
person.setLastName("Rahim");
person.setFirstName("Uddin");
person.setAddress("Dhaka");
person.setCity("Dhaka");
personService.add(person);
}
}
。
答案 0 :(得分:0)
这必须由你自己完成。南希没有机械师能够知道如何自动处理
当您连接表单身份验证并分配UserMapper
FormsAuthenticationConfiguration
属性时,您无法从容器中解析它。
您将必须根据请求的路由为每个请求创建适当的IUserMapper
实例。您可以从传递到NancyContext
方法的RequestStartup
对象获取请求的路线。