PDA

View Full Version : Global.asax درForms Authentication



rasti_web
یک شنبه 13 اسفند 1385, 09:31 صبح
من در پروژه خود از Forms Authentication استفاده کرده ام و در فایل global.asax کد زیر را اضافه کرده ام :


protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
if ((HttpContext.Current.User != null))
{
if (HttpContext.Current.User.Identity.IsAuthenticated )
{
if (HttpContext.Current.User.Identity is System.Web.Security.FormsIdentity)
{
System.Web.Security.FormsIdentity id = (System.Web.Security.FormsIdentity)HttpContext.Cur rent.User.Identity;
System.Web.Security.FormsAuthenticationTicket ticket = id.Ticket;
string userData = ticket.UserData.Trim();
string []role = userData.Split(',');
HttpContext.Current.User = new GenericPrincipal(id,role);
}
}
}
}

برای آپلود پروژه مشکل دارم.چون این پروژه را میخواهم در کنار تعدادی دیگر از webApplicationهای روی سایت بریزم و یکی از آنها از فایل global در root استفاده میکند.
راه حلی نیست که این کد را در داخل خود برنامه بنویسم و اصلا با global کار نکنم؟

Behrouz_Rad
یک شنبه 13 اسفند 1385, 18:48 عصر
بدون در نظر گرفتن غلط یا درست بودن کاری که انجام میدی عرض شود که بله!...
یک Http Module ایجاد کن و در روال Init اون، روال مورد نظرت رو به رویداد AuthenticateRequest نسبت بده.
کد تاپیک "فشرده سازی در ASP.NET 2.0" راهنمای خوبی واست می تونه باشه.

موفق باشید.

Alireza_Salehi
یک شنبه 13 اسفند 1385, 20:07 عصر
بدون در نظر گرفتن غلط یا درست بودن کاری که انجام میدی عرض شود که بله!...

با توجه به http://www.codeproject.com/aspnet/formsroleauth.asp
آقای راد اگر ممکنه درست یا غلط بودنش رو هم توضیح بدید؟

Behrouz_Rad
یک شنبه 13 اسفند 1385, 20:34 عصر
برای Web Application مزاحم، یک فایل Global.asax جدا ایجاد کنه!

rasti_web
دوشنبه 14 اسفند 1385, 10:22 صبح
ممنون از راهنمایی شما.من چه جوری میتونم برای WebApplication های روی سایت بیش از یک global داشته باشم؟

Behrouz_Rad
دوشنبه 14 اسفند 1385, 11:32 صبح
من متوجه نمیشم که تو دقیقا چکار کردی....!
چند Web App در یک Web App؟

rasti_web
دوشنبه 14 اسفند 1385, 11:45 صبح
نه.من یک webapplication جدید را میخواستم upload کنم و در فایل global آن کدهای ارسالی را نوشتم.ولی در کنار این webapp یک برنامه counter دارم که اون هم از global استفاده میکنه. حالا اگر global جدید را بریزم برنامه های قبلی دچار مشکل میشوند.همچنین نمی توانم بیش از یک global داشته باشم.البته مشکل را یک جور دیگه دارم حل میکنم.یک sub domain برای این برنامه جدید ایجاد کرده و میخواهم فایل های این برنامه را در آن بریزم.

rasti_web
دوشنبه 14 اسفند 1385, 11:51 صبح
در ضمن پیرو درخواست قبلی و سوال arsp_2004 این روش برای forms authentication را از همان مقاله ضمیمه استفاده کردم.این روش ایرادی داره؟ (لطفا من را راهنمایی کنید چون من این روش را برای یک فروشگاه اینترنتی کارت اینترنت پیاده سازی کرده ام.البته من asp.net 1.1 کار میکنم)

Behrouz_Rad
دوشنبه 14 اسفند 1385, 14:37 عصر
منطقا داری اشتباه عمل می کنی.
یک فایل Global کفایت می کنه. سعی کن روش کاری که انجام میدی رو اصلاح کنی.

موفق باشید.

rasti_web
سه شنبه 15 اسفند 1385, 09:26 صبح
ممنون از توجه شما.ببخشید میشه راهنمایی کنید که کجا را دارم اشتباه میکنم.یعنی میشه چند webApplication با هم با دستورات global مختلف درست کار کنند.ولی در عمل که اینطوری نبود.همچنین در فایل global ارث بری از webApp خودش نداره؟

Behrouz_Rad
سه شنبه 15 اسفند 1385, 10:40 صبح
تو داری یکیWeb App ایجاد می کنی. Web App یعنی یک پروژه نه بیشتر.
تو این امکان رو داری که چندین فایل Web.Config داشته باشی اما برای فایل Global.asax این کار معنا نداره.
سعی کن اصولی کار کنی و نیازت رو با همون یک فایل Global.asax برطرف کنی.

موفق باشید.