以下の私の要件をご覧ください。
次の条件で、ユーザーをアカウント/ログイン ページにリダイレクトしたいと考えています。
- ユーザーがたとえばhttp://example.com/Customer1と入力した場合
customer1 が customer の場合、これを 1 つの構成テーブルに保持しています。ここで、customer1 の接続文字列を保持しています。
したがって、基本的に customer1 これがデータベースに存在するかどうかを確認してから、/Customer1/account/login ページにリダイレクトする必要があります。
これが可能かどうか教えてください。はいの場合、このmap.routeを設定または確認するにはどうすればよいですか?
public ActionResult Login()
{
string CurrentURL = Request.Url.AbsoluteUri;
var subdomain = CurrentURL.Split('/')[5];
var getDB = (from c in dbcontext.Configuration
where c.CustomerName == subdomain
select new
{
DBName = c.CustomerDBName,
DBUserName = c.CustomerDBUserName,
DBPassword = c.CustomerDBPassword,
DBDataSource = c.CustomerDBDataSource,
DBConnectionString = c.CustomerDBConnectionStringName
}).FirstOrDefault();
dbcontext.ChangeDatabase(initialCatalog: getDB.DBName,
userId: getDB.DBUserName,
password: getDB.DBPassword,
dataSource: getDB.DBDataSource,
configConnectionStringName: getDB.DBConnectionString);
return View();
}
上記のコードでは、ユーザーが入力したサブドメインが一致するかどうかを確認してから、EDMX 接続を変更しますが、ログイン ページの顧客名にリダイレクトする方法を確認しています。
customer1/アカウント/ログイン