[Android] एएसपी.नेट वेब एपीआई प्रमाणीकरण


Answers

उदाहरण के तौर पर मैं एंड्रॉइड लेता हूं।

public abstract class HttpHelper {

private final static String TAG = "HttpHelper";
private final static String API_URL = "http://your.url/api/";

private static CookieStore sCookieStore;

public static String invokePost(String action, List<NameValuePair> params) {
    try {
        String url = API_URL + action + "/";
        Log.d(TAG, "url is" + url);
        HttpPost httpPost = new HttpPost(url);
        if (params != null && params.size() > 0) {
            HttpEntity entity = new UrlEncodedFormEntity(params, "UTF-8");
            httpPost.setEntity(entity);
        }
        return invoke(httpPost);
    } catch (Exception e) {
        Log.e(TAG, e.toString());
    }

    return null;
}

public static String invokePost(String action) {
    return invokePost(action, null);
}

public static String invokeGet(String action, List<NameValuePair> params) {
    try {
        StringBuilder sb = new StringBuilder(API_URL);
        sb.append(action);
        if (params != null) {
            for (NameValuePair param : params) {
                sb.append("?");
                sb.append(param.getName());
                sb.append("=");
                sb.append(param.getValue());
            }
        }
        Log.d(TAG, "url is" + sb.toString());
        HttpGet httpGet = new HttpGet(sb.toString());
        return invoke(httpGet);
    } catch (Exception e) {
        Log.e(TAG, e.toString());
    }

    return null;
}

public static String invokeGet(String action) {
    return invokeGet(action, null);
}

private static String invoke(HttpUriRequest request)
        throws ClientProtocolException, IOException {
    String result = null;
    DefaultHttpClient httpClient = new DefaultHttpClient();

    // restore cookie
    if (sCookieStore != null) {
        httpClient.setCookieStore(sCookieStore);
    }

    HttpResponse response = httpClient.execute(request);

    StringBuilder builder = new StringBuilder();
    BufferedReader reader = new BufferedReader(new InputStreamReader(
            response.getEntity().getContent()));
    for (String s = reader.readLine(); s != null; s = reader.readLine()) {
        builder.append(s);
    }
    result = builder.toString();
    Log.d(TAG, "result is ( " + result + " )");

    // store cookie
    sCookieStore = ((AbstractHttpClient) httpClient).getCookieStore();
    return result;
}

ध्यान दें कृपया: i.localhost का उपयोग नहीं किया जा सकता है। एंड्रॉइड डिवाइस खुद को होस्ट के रूप में localhost देखो। ii। अगर आईआईएस में वेब एपीआई तैनात है, तो फॉर्म प्रमाणीकरण खोला जाना चाहिए।

Question

मैं ASP.NET वेब API का उपयोग करते समय किसी क्लाइंट एप्लिकेशन से किसी उपयोगकर्ता को प्रमाणित करने के लिए देख रहा हूं। मैंने साइट पर सभी वीडियो देखे हैं और इस मंच पोस्ट को भी पढ़ा है।

[Authorize] विशेषता डालने से 401 Unauthorized स्थिति सही ढंग से 401 Unauthorized । हालांकि, मुझे यह जानने की जरूरत है कि उपयोगकर्ता को एपीआई में लॉग इन करने की अनुमति कैसे दी जाए।

मैं एपीआई में एंड्रॉइड एप्लिकेशन से उपयोगकर्ता क्रेडेंशियल्स प्रदान करना चाहता हूं, उपयोगकर्ता को लॉग इन करें, और उसके बाद सभी बाद के एपीआई कॉल प्री-प्रमाणीकृत हों।




Links