پس از تلاشهای اولیه برای راه اندازی که نیاز به گوگل کردن موارد مختلف دارد از جمله راه اندازی ssl و certification در لوکال هاست و تنظیم IIS برای استفاده از آن، میتوان به راه اندازی اولیه آیدنتیتی سرور رسید .
نگاهی اجمالی به سورس: نمونه استفاده
خود کلاس UserRepository یک کلاس پیاده سازی شده از اینترفیس IUserManagementRepository است که میتوان خود آنرا نیز با تزریق وابستگیها تغییر داد و از Membership و بازنویسی توابع قدرتمند MembershipReboot آن استفاده کرد. لیست توابع این اینترفیس که میتوانید استفاده کنید: آدرس اینترفیس
پیش فرض این آموزش این نسخه از آی دنتیتی سرور است :
https://github.com/IdentityServer/IdentityServer2
نگاهی اجمالی به سورس:
Sampel----
AdfsIntegrationFullSample --------
AdfsIntegrationSampleClient --------
InMemoryHost --------
(MVC and WCF RP (SAML --------
(MVC and Web API (JWT --------
MembershipRebootUserRepository --------
OIDC --------
SelfHostConsoleHost --------
ServiceBus Integration --------
src----
Libraries --------
WebSite --------
Tests --------
از نام مثالها کاملآ مشخص است که هر کدام چه بخشی را پوشش میدهند.
مثلآ پوشهی MembershipRebootUserRepository، مربوط به مدیریت کاربران است و توابع غنی بسیار خوبی در آن استفاده شدهاست. خود MembershipReboot یک پروژهی دیگر است برای مدیریت کاربران که توسط BrockAllen توسعه داده شده و مدیریت کاربران را بسیار آسان کردهاست؛ برای مثال به راحتی میتوان
BrockAllen.MembershipReboot BrockAllen.MembershipReboot.Ef BrockAllen.MembershipReboot .Repository
از این آدرس را به سورس اصلی آی دنتیتی سرور اضافه کرد و از توابع مدیریت کاربران این پروژه استفاده کرد. چون کار را بسیار آسان کرده است.
برای مثال من برای ایجاد کاربر نیاز داشتم که علاوه بر درج کاربر در سرور آی دنتیتی، در بانک اطلاعاتی خودم هم کاربر درج شود. برای همین برای آی دنتیتی سرور صفحهی ثبت نام نوشتم. برای اینکار فقط با یک شیء از membership به راحتی این تابع پیاده سازی شد:
Membership.CreateUser(userName, password, email); Roles.AddUserToRoles(userName, "IdentityServerUsers");
این افزودن کاربر را میتوان از هستهی اصلی خود آی دنتیتی سرور استفاده کرد. ولی استفاده از آن به علت راحت بودن و توابع خیلی زیاد BrockAllen.MembershipReboot است و استفاده از آن بسیار کاربردی میتواند باشد.
برای استفاده از خود آی دنتیتی سرور برای ساخت یوزر، وارد قسمت سورس شوید و به کنترلر احراز هویت، یک تابع به نام رجیستر اضافه کنید؛ به این فایل:
https://github.com/IdentityServer/IdentityServer2/blob/master/src/OnPremise/WebSite/Controller/AccountController.cs
شکل تابع :
[HttpPost] public ActionResult Register(RegisterModel model) { UserRepository.CreateUser(model.userName,model.password,model.email); Roles.AddUserToRoles(userName, "IdentityServerUsers"); return View(model); }
void CreateUser(string userName, string password, string email = null); void DeleteUser(string userName); IEnumerable<string> GetUsers(int start, int count, out int totalCount); IEnumerable<string> GetUsers(string filter, int start, int count, out int totalCount); void SetPassword(string userName, string password); void SetRolesForUser(string userName, IEnumerable<string> roles); IEnumerable<string> GetRolesForUser(string userName); IEnumerable<string> GetRoles(); void CreateRole(string roleName); void DeleteRole(string roleName);