【发布时间】:2013-01-16 18:04:13
【问题描述】:
在我的网络应用程序(正在进行中)中,我现在尝试让新客户注册到我的网络应用程序。我在 Azure 中部署。
我正在研究的想法:
www.[mysite].com/Register
此注册页面允许“新”用户注册他的新租户。
customer.[mysite].com/Register
这在代码中几乎如下所示
public ActionResult Register()
{
var url = Request.ServerVariables["HTTP_HOST"];
var tenantNameParser = new TenantNameParser(url);
if (!TenantRepository.Exists(tenantNameParser.TenantName))
{
return RedirectToAction("NewCustomer");
}
return View();
}
在上面的 sn-p 中,我检查租户是否存在,如果不存在,则重定向到新客户。
[HttpPost]
public ActionResult NewCustomer(Customer model)
{
if (ModelState.IsValid)
{
var tenant = new Tenant
{
Name = model.TenantName,
Guid = Guid.NewGuid().ToString()
};
TenantRepository.Add(tenant);
// TODO create a new user new tenant repository to do this stuff as 1 atomic action
if (!UserRepository.Exists(model.AccountableEmailAddress))
{
// Attempt to register the user
var createStatus = MembershipService.CreateUser(
model.AccountableUser,
model.Password,
model.AccountableEmailAddress);
if (createStatus == MembershipCreateStatus.Success)
{
FormsService.SignIn(model.AccountableUser, false);
return RedirectToAction("Index", "Home");
}
throw new Exception("crappy implemenation, improve");
}
FormsService.SignIn(model.AccountableUser, false);
// TODO figure out how to redirect to tenant.site.com
return RedirectToAction("Index", "Home");
}
return View(model);
}
上面的代码创建了一个新客户,最后我的 //todo 就是这个问题的内容。如何以tenant.domain.com 的形式重定向到包含实际租户的URL?
我不知道这种“处理租户的方式”是否是一种不好的做法,如果是,请随意说。
问题:如何重定向到租户 URL ([tenantname.[mysite].com/Index/Home)。就像是: Redirect("tenantname", "Index", "Home") 会很棒,但当然不存在。我用谷歌搜索了一下,但没有找到有用的链接(这主要是我认为我在设计“错误的东西”的原因)。
建议会很棒!非常感谢您提前考虑!
如果我因为不清楚我的要求而需要重新措辞,请告诉我。
【问题讨论】:
-
你的第二个问题是合适的;如果您显示一些代码并扩展您所拥有的。第一个问题不适合 Stack Overflow。
-
再一次,“建议”和“不良做法与良好做法”不是要在 Stack Overflow 上提出的问题类型。只是为了不关闭,我建议编辑它并将您的问题缩小到您面临的实际技术问题。
-
对不起,我没有意识到这一点。恐怕我们都编辑了这篇文章(或者至少有人编辑了)。希望我没有撤消更改。我现在专门寻求技术帮助,并祈祷有经验的人仍然会告诉我我是否在做一些倒退
标签: c# asp.net asp.net-mvc azure