Перенаправление в c # метод не работает

user3263515 спросил: 11 июня 2018 в 10:57 в: javascript

введите описание изображения. Я пытаюсь внедрить Google на мою страницу веб-форм, потому что мы используем G-пакет для бизнеса. в основном я использую javascript, чтобы получить токен, а затем используя ajax для публикации в google api, тогда я смотрю заявку HD, чтобы убедиться, что они отделены от нашего домена и проводки для кода, стоящего за электронной почтой, и выполняют поиск, чтобы получить идентификатор пользователя, а затем установление формы cookie и попытка перенаправления на нашу страницу defalut. Таким образом, у нас есть приложение mvc, в котором я сделал эту точную вещь, и он отлично работает, я просто направил их на контроллер. По какой-то причине мне кажется, что я не получаю ничего от своего кода за кодом.

вот мой javascript.

  <script>
        function onSignIn(googleUser) {
            debugger;
            const profile = googleUser.getBasicProfile();
            let boolRedirectUrl = false;
            const id_token = googleUser.getAuthResponse().id_token;
            const pathname = window.location.pathname;
            const url = window.location.href;
            let redirectPath = "";
            if (window.location.href.indexOf("ReturnUrl") > -1) {
                boolRedirectUrl = true;
                redirectPath = readQueryString("ReturnUrl");
            }
            const googleUrl = "https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=" + id_token;
            $.ajax({
                url: googleUrl,
                dataType: 'json',
                data: '{}',
                contentType: 'application/json',
                success: (data, status, xhr) => {
                    const domain = data.hd;
                    const email = data.email;
                    if (domain === "kimbelmechanical.com") {
                        $.ajax({
                            url: "Login.aspx/GoogleLogin",
                            type: "POST",
                            data: { 'email': email },
                            success: (data, status, xhr) => {
                                //window.location.href = "Default.aspx"
                            },
                            error: (xhr, status, error) => {
                                console.log("I stopeed on the call to controller " + status);
                            }
                        });                    }
                },
                error: (xhr, status, error) => {
                    console.log(status);
                }
            });
        };        function readQueryString(key) {
            key = key.replace(/[*+?^$.\[\]{}()|\\\/]/g, "\\$&");
            var match = location.search.match(new RegExp("[?&]" + key + "=([^&]+)(&|$)"));
            return match && decodeURIComponent(match[1].replace(/\+/g, " "));
        }
    </script>

это мой код c # .

 [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public void GoogleLogin(string email)
    {
        string userID = "";
        using (var context = new KPDataContext(KP.Common.KPConnectionString))
        {
            var user = context.Employees.Where(p => p.Email == email);            foreach (var e in user)
            {
                userID = e.Username;
            }
        }        if (userID != "")
        {
            FormsAuthentication.SetAuthCookie(userID, false);
            Response.Redirect("~/Default.aspx", true);
        }
    }

, если я перенаправляюсь с успеха на мою страницу по умолчанию, он загружает его по умолчанию .aspx найден, но по какой-то причине он выполняет login.aspx? ReturnUrl =? default.aspx, но остается на странице входа, так что я в бесконечном цикле загрузки страницы входа снова и снова.

0 ответов