تاپیک مورد نظر بسته شده است
سلام
میخواستم بدونم چجوری میشه زمان خروج کاربر از سایت رو با بستن مرورگر ثبت کرد؟؟
الان تنها با زدن دکمه خروج از سایت این اتفاق میوفته
یه کد جاوا هم پیدا کردم که گذاشتم تو site master ولی هربار که کاربر تو پروفایلش یه صفحه جدید باز میکرد یه لاگ ثبت میکرد و مشخص نمیشد که کدوم لاگ خروجه
ممنون میشم راهنمایی کنید
کد Ajax سمت کاربر <script> window.onbeforeunload = function (evt) { $.ajax({ url: "UserService.asmx/UpdateLogoutInfo", contentType: "application/json; charset=utf-8", type: "POST", success: function (data) { //alert(data); }, error: function (x, y, z) { alert(x.responseText + " " + x.status); } }); } </script> کد سمت سرور و ثبت در فایل متنی [WebMethod] public string UpdateLogoutInfo() { //create a text file and write logout time there. LogTimeInFile("Log Out Time is:" + DateTime.Now.ToString() + Environment.NewLine); return ""; } public void LogTimeInFile(string strLine) { string path = Server.MapPath("~/log.txt"); if (!File.Exists(path)) File.Create(path).Dispose(); File.AppendAllText(path, strLine); }
اینم کدی که گفتم با این کد ثبت میکنه ولی نمیخوام اسکریپتی باشه که اگه به هر دلیلی کاربر جاواش خاموش بود کار نکنه یا حداقل فقط خروج کاربرو ثبت کنه
اینم همون تیکه کدی که گذاشتم حالا برای ثبت آخرین خروج یه راهی پیدا میکنم
الان مشکلم اینه تو Site.Master که این کد Ajax رو مینویسم کار نمیکنه و داخل تابع نمیره که کدهامو اجرا کنه
مجدد سلام این مشکل حل شد خدارو شکر
برای این کار از یه WebSrvice استفاده کردم که کدهای داخلش به این صورته
[WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. [System.Web.Script.Services.ScriptService] public class Ajax_Function : System.Web.Services.WebService { [WebMethod(EnableSession=true)] public string Logout() { } }
که فقط کافیه
[System.Web.Script.Services.ScriptService]
این تیکه کد رو از حالت کامنت در آوردم و برای استفاده از سشن هم تو اول تابع اون رو فعال کردم
و اینکه نکته ای که داره اینکه برای استفاده تو webService باید تابع از حالت Static خارج بشه و تنها حالت Public داشته باشه
<script> window.onbeforeunload = function (evt) { $.ajax({ url: "Ajax_Function.asmx/Logout", contentType: "application/json; charset=utf-8", type: "POST", success: function (data) { }, error: function (x, y, z) { } }); } </script>
اینم تیکه کد Ajax که میره داخل WebSrvice
هیچ کاربری تا کنون از این پست تشکر نکرده است
تاپیک مورد نظر بسته شده و امکان درج پاسخ وجود ندارد
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)