PDA

View Full Version : سوال: چطور از طریق یک webapplication session برای webapplication های دیگر تنظیم کنیم.



sayanpro
سه شنبه 18 شهریور 1399, 14:16 عصر
سلام دوستان وقت بخیر.

فرض کنید در iis من 5 تا web application دارم که هر کدوم قابلیت لاگین کردن دارد و کاربر برای ورود به هر کدوم باید نام کاربری و رمزعبور وارد کند. می خواهم در web application اول آدرس 4 تای دیگر نمایش بدم و وقتی که کاربر لاگین کرده و روی لینک ها کلیک کرد به آن web application هدایت شود و دیگه از کاربر نام کاربری و رمز عبور برای ورود به آن سایت نپرسه! آیا این امکان پذیره؟

ممنون میشم راهنمایی بفرمائید.

مهدی کرامتی
سه شنبه 18 شهریور 1399, 15:44 عصر
چیزی که مدنظرتون هست ربطی به سشن نداره.
اگر نیاز دارید سشن رو بین چند تا اپلیکیشن به اشتراک بگذارید می توانید در تنظیمات sessionState در وب کانفیگ همه شون رو به یک State Server مبتنی بر سرویس مربوطه (کافیه سرویس اش رو یک سرور استارت بشه (https://docs.microsoft.com/en-us/iis/application-frameworks/scenario-build-an-aspnet-website-on-iis/configuring-step-2-configure-asp-net-settings) و در تنظیمات sessionState تمام اون وب اپلیکیشن ها آدرس اون State Server داده بشه)، و یا یک دیتابیس در SQL Server که نقش State Server رو بازی می کنه (https://docs.microsoft.com/en-us/troubleshoot/aspnet/configure-sql-store-session-state) متصل کنید.

اما اگر قراره تمام این برنامه ها لاگین یکسان داشته باشند بهتره به استفاده از Identity Server فکر کنید:
https://docs.microsoft.com/en-us/aspnet/identity/overview/getting-started/adding-aspnet-identity-to-an-empty-or-existing-web-forms-project
https://github.com/IdentityServer/IdentityServer3/issues/3229

علیرضا5
شنبه 12 مهر 1399, 11:06 صبح
اگه می خوای بدون محدودیت کار کنی تنها راه استفاده از متد post هست
البته متد get هم هست ولی امنیتش پایینتره

مهدی کرامتی
شنبه 12 مهر 1399, 13:15 عصر
اگه می خوای بدون محدودیت کار کنی تنها راه استفاده از متد post هست
البته متد get هم هست ولی امنیتش پایینتره
مطمئنی تو تاپیک صحیح پاسخ دادی؟!

علیرضا5
شنبه 12 مهر 1399, 21:26 عصر
استاد شرمنده نفرمایید مارو
ما جسارته جلوی شما نظر بدیم

من فکر میکنم با پست کردن میشه بین صفحات وب اپلیکیشن های مختلف اطلاعات رو جابجا کرد

پس وقتی میشه اطلاعات رو اینطوری منتقل کرد خوب برا لاگین هم میشه برنامه داشت

این ایرادش چیه؟

Tekyegah
سه شنبه 15 مهر 1399, 12:43 عصر
صورت سوال اینه :

سایت website1.com داریم با سایت Website2.com

میگه 2 سایت کاربرهاش یکی هستن . ( اصلا دلیلی نداره که سایت 2 هم صفحه لاگین داشته باشه که بخوای یه فرم رو POST کنی برای اون )

اگه در سایت website1.com تو پنجره Login کردم و یه کوکی یا session ایجاد شد که مثلا کاربر ALI توی سایت website1.com شناسایی شد ، چیکار کنم که برای دامین website2.com هم ساخته بشه و نخواد مجددا توی اون سایت هم Login کنم .

مهدی کرامتی
پنج شنبه 17 مهر 1399, 20:16 عصر
صورت سوال اینه :

سایت website1.com داریم با سایت Website2.com

میگه 2 سایت کاربرهاش یکی هستن . ( اصلا دلیلی نداره که سایت 2 هم صفحه لاگین داشته باشه که بخوای یه فرم رو POST کنی برای اون )

اگه در سایت website1.com تو پنجره Login کردم و یه کوکی یا session ایجاد شد که مثلا کاربر ALI توی سایت website1.com شناسایی شد ، چیکار کنم که برای دامین website2.com هم ساخته بشه و نخواد مجددا توی اون سایت هم Login کنم .

روش کار رو در پست شماره 2 (https://barnamenevis.org/showthread.php?562395-%DA%86%D8%B7%D9%88%D8%B1-%D8%A7%D8%B2-%D8%B7%D8%B1%DB%8C%D9%82-%DB%8C%DA%A9-webapplication-session-%D8%A8%D8%B1%D8%A7%DB%8C-webapplication-%D9%87%D8%A7%DB%8C-%D8%AF%DB%8C%DA%AF%D8%B1-%D8%AA%D9%86%D8%B8%DB%8C%D9%85-%DA%A9%D9%86%DB%8C%D9%85&p=2434317&viewfull=1#post2434317) توضیح دادم.

sayanpro
دوشنبه 24 آذر 1399, 17:04 عصر
چیزی که مدنظرتون هست ربطی به سشن نداره.
اگر نیاز دارید سشن رو بین چند تا اپلیکیشن به اشتراک بگذارید می توانید در تنظیمات sessionState در وب کانفیگ همه شون رو به یک State Server مبتنی بر سرویس مربوطه (کافیه سرویس اش رو یک سرور استارت بشه (https://docs.microsoft.com/en-us/iis/application-frameworks/scenario-build-an-aspnet-website-on-iis/configuring-step-2-configure-asp-net-settings) و در تنظیمات sessionState تمام اون وب اپلیکیشن ها آدرس اون State Server داده بشه)، و یا یک دیتابیس در SQL Server که نقش State Server رو بازی می کنه (https://docs.microsoft.com/en-us/troubleshoot/aspnet/configure-sql-store-session-state) متصل کنید.

اما اگر قراره تمام این برنامه ها لاگین یکسان داشته باشند بهتره به استفاده از Identity Server فکر کنید:
https://docs.microsoft.com/en-us/aspnet/identity/overview/getting-started/adding-aspnet-identity-to-an-empty-or-existing-web-forms-project
https://github.com/IdentityServer/IdentityServer3/issues/3229

ممنون استاد عزیز.
مشکل ما اینه که ما 4 تا web application داریم که بر اساس windows auth کاربران شناسایی میشن و این برای کاربرانی که در domain ما قرار دارند هیچ مشکلی نداره. حالا یک سری کاربر دیگه ای داریم که چون domain شان با ما یکی نیست. زمانیکه web application های ما را باز می کنن مرورگر سوال user pass میکنه و باید برای هر کدام از اون web application ها، این کاربران user pass وارد کنن تا بتونن از نرم افزار تحت وب ما استفاده کنن.

حالا ما می خواهیم برای این کاربران که domain شان با ما یکی نیست راه ورود به برنامه را راحتتر کنیم. آیا میشه براساس domain بیاییم این تفکیک کنیم بگیم اگه کاربر از این دامین بود windows auth چک کنه و اگه نبود مثلا هدایت بشه به یک web application پنجمی که یک user login داشته باشه و اینجا ورود بزنه و کاربر دیگه شناسایی شده در نظر گرفته بشه طوری که اگه کاربر اون 4 تا web application دیگه باز کرد دیگه سوال لاگین کردن ازش نشه.
ببخشید اگه پیچیده توضیح دادم.

ممنون از راهنمایی شما.

sayanpro
شنبه 27 شهریور 1400, 15:42 عصر
سلام استاد. وقت شما بخیر.
من از روش stateServer استفاده کردم و توی دو تا application تنظیمات ایجاد کردم در پروژه اولی درست کار میکنه ولی از پروژه دومی مقدار session مورد نظرم null هست. ممنون میشم راهنمایی بفرمائید.
با تشکر.


چیزی که مدنظرتون هست ربطی به سشن نداره.
اگر نیاز دارید سشن رو بین چند تا اپلیکیشن به اشتراک بگذارید می توانید در تنظیمات sessionState در وب کانفیگ همه شون رو به یک State Server مبتنی بر سرویس مربوطه (کافیه سرویس اش رو یک سرور استارت بشه (https://docs.microsoft.com/en-us/iis/application-frameworks/scenario-build-an-aspnet-website-on-iis/configuring-step-2-configure-asp-net-settings) و در تنظیمات sessionState تمام اون وب اپلیکیشن ها آدرس اون State Server داده بشه)، و یا یک دیتابیس در SQL Server که نقش State Server رو بازی می کنه (https://docs.microsoft.com/en-us/troubleshoot/aspnet/configure-sql-store-session-state) متصل کنید.

اما اگر قراره تمام این برنامه ها لاگین یکسان داشته باشند بهتره به استفاده از Identity Server فکر کنید:
https://docs.microsoft.com/en-us/aspnet/identity/overview/getting-started/adding-aspnet-identity-to-an-empty-or-existing-web-forms-project
https://github.com/IdentityServer/IdentityServer3/issues/3229